Commit

Use Modify|Commit to write back (commit) the changes of the selected files/directory to the repository.

The Commit wizard guides you through the commit, starting with the 'Configuration'. Based on the 'Configuration' the working copy will be scanned for changes, this is especially important when performing the Commit on a directory. Subsequent pages allow further 'customization' of the commit. Their presence depends on the changed files and directories found during the scanning phase.

Before the commit wizard opens, it checks whether you might have missed to select some files resp. directories and in this case shows a warning. For details, refer to the Preferences.

Page 'Configuration'

Select Recurse into subdirectories to scan not only changes from the selected local directory, but also from subdirectories. When recursing into subdirectories, select Descend into externals (Pro Only) to also scan for changes in external working copies. Select Skip Change Set entries (Pro Only) to ignore found changed files resp. directories which have already been assigned to a Change Set.

Select Detect moved and renamed files (Pro Only) if you want SmartSVN to detect files which are most likely renamed or moved. These files will not simply be added and removed, but marked as copied. For details, refer to Detect Moves (Pro Only).

Except from those files which have been selected and which are in a committable SVN state, SmartSVN can Suggest To commit further files: Select Add unversioned files and directories (Pro Only) to also report unversioned (most likely new) files and directories. Select Remove missing files and directories (Pro Only) to also report missing (most likely obsolete) files and directories.

Note

When committing a selection of files, only those options are available, which are actually applicable to the files. So, for instance, when no unversioned files have been selected, Add unversioned files and directories will not be available.

Select Remove removed parent directories (Pro Only) to make SmartSVN also scan parent directories of the files/directory which have been selected for the commit. If such a parent directory is scheduled for removal, it will also be suggested for the commit. With Also remove empty parent directories (Pro Only), all resulting emtpy parent directories will also be suggested for the commit.

Tip

To clean up all empty directories within your project, you can use Tools|Remove Empty Directories, see Remove Empty Directories (Pro Only).

When clicking Next the file system of your project will be scanned, especially in case of directory commits, this may take some time.

Page 'Detect Moves' (Pro Only)

This page is only displayed if the option Detect moved and renamed files on the Configuration page has been selected and at least one moved or renamed file pair was detected. By Differences you can toggle the integrated compare view. This will show the differences for the currently selected file in the lower part of the Commit dialog. The navigation for this view is similar to the Change Report.

Page 'Externals' (Pro Only)

This page is only displayed if the option Descend into externals on the Configuration page has been selected and at least one committable entry within an external working copy has been found. For details on externals, refer to Externals.

Every such external working copy is listed with its Local Path and its URL. The project's working copy itself is also listed with local path '. '. Every working copy can be individually selected or deselected for the commit by toggeling the checkbox in Path column (either with the mouse or with <Space>).

Working copies pointing to the same repository (the URL is helpful to see this) can be committed together, hence SmartSVN will have to perform as many commits as different repositories are involved in the overall commit process.

Warning

When committing to multiple repositories, every commit will create its own revision in the corresponding repository. Hence, atomicity of such commits is not sustainable. This for example means that the commit to one repository can succeed while the other one fails. While fixing the failing commit another person might already have updated its working copy and only have received the successfully committed revision. This might result in (temporarily) inconsistencies of his/her overall project.

You can choose whether to commit the selected working copies with One commit message or with Individual commit messages. This choice may not be available even when having multiple working copies selected. This happens if the Bugtraq-Properties for at least two of the working copy roots are set and these properties are not identical.

Page 'Files'

This pages shows a list of all files and directories which were found to be committable according to the selected options from the Configuration page. To skip a file/directory from commit, deselect the corresponding checkbox (either with the mouse or by pressing <Space>).

You may review your changes, by expanding the dialog with the Differences (Pro Only) button. This will show the differences for the currently selected file in the lower part of the Commit dialog. The navigation for this view is similar to the Change Report.

For the Commit Message you can enter arbitrary text or select an older message from the message popup right to the text field. The popup menu will show up recently entered commit messages, allow to clear this message history by Clear Message History or use Get from Log (Pro Only) to fetch an older commit message from the log. By <Ctrl>+<Space> you can trigger a file name completion, based on all of those files which have been selected for the commit.

Depending on whether resp. how Bugtraq-Properties are configured for the current working copy, there may be an additional 'issue ID ' input field. The name of this field can vary, depending on the Bugtraq-Properties. Its content will be appended/prepended to entered commit message afterwards, forming the final commit message.

If the spell check has been configured, SmartSVN will check the entered Commit Message for basic spelling errors. The spell check ignores file paths, i.e. strings containing a '/' and 'issue IDs ' which are part of the commit message and which can be recognized by the Bugtraq-Properties.

Tip

Commit messages will be displayed in various kinds of logs. Hence, a meaningful commit message is very helpful for you and your team to track your changes.

By default, SmartSVN will warn you in case of an empty commit message. You can switch this warning off in the Preferences.

If Descend into externals has been selected and multiple working copies on the Externals page have been chosen to commit, there will also be a topmost Working Copy selector. All other items on this page are always related to the selected working copy. In particular it will be necessary resp. it is recommended to enter a Commit Message for each working copy.

Page 'Locks'

This page will only be displayed, if the selected files/directories for the commit, which have been scanned, contain locked files.

Select Keep locks for committed files to keep the files locked even after having them committed. Select Unlock committed files (Pro Only) to unlock them after the commit. In this case you can also selected further unchanged but locked files which had been detected during the scan and which shall be unlocked upon a successful commit as well.

Tip

You can configure whether Keep locks for committed files or Unlock committed files should be selected by default in the Project Settings.

Click Finish to finally start the commit.