Send your changes to the repository

Sending the changes you made to your working copy is known as committing the changes. If your working copy is up to date and there are no conflicts, you are ready to commit your changes.

The Commit action sends the changes in your local working copy to the repository. After selecting the action from the contextual menu you will see a dialog displaying the resources that can be committed.

Figure 3.28. Commit dialog

Commit dialog

Enter a comment to associate with the commit or choose a previously entered comment from the list (the last 10 commit messages will be remembered even after restarting the SVN client application). The dialog will list modified, added, deleted and unversioned resources. All modified, added and deleted resources will be selected by default. If you don't want a changed file to be committed, just uncheck that file. The unversioned items are not selected by default unless you have selected them specifically before issuing the commit command.

To select all resources, click Select All. To deselect all resources, click Deselect All. Checking the Keep locks option will preserve any locks you have on repository resources. Your working copy must be up-to-date with respect to the resources you are committing. This is ensured by using the Update action prior to committing, resolving conflicts and re-testing as needed. If your working copy resources you are trying to commit are out of date you will get an appropriate error message.

The table presented in the dialog is sortable. For example if you want to see all the resources that are in the modified state click on the State column header to sort the table by that column.

The modifications that will be committed for each file can be reviewed in the compare editor window by double clicking on the file in the Commit dialog or by right clicking and selecting the action Show Modifications.

If you have modified files which have been included from a different repository using svn:externals, those changes cannot be included in the same commit operation.