# Committing

You can commit Workbench resources that you have modified to the repository so that other team members can see your work. Only those changes committed on that branch will be visible to others working on that branch. The commit command can be issued from two places: the Team > Commit menu, or the Synchronize view.

To commit changes using Team > Commit:

1. In one of the navigation views, select the resources that you want to commit.
2. Right-click on the resources and select Team > Commit from the pop-up menu.
3. If there are new files whose file types cannot be determined automatically, the first page of the Commit dialog will present the unknown types and allow you to set them appropriately to either ASCII or binary. Click Next to continue.
4. On the Comment page, provide a comment for your changes (for example, `Fixed the spelling mistakes`).

The Comment page also allows the user to preview the files that are about to be committed. If any of the files are known to be conflicting changes, the commit will not be allowed. If there are no known conflicting changes the commit will be allowed but there could still be conflicting changes on the server (i.e. conflicting changes on the server become known to the client during a synchronize operation). If there are conflicting changes on any files that are committed, the operation will fail. If this occurs, you must either perform an update or use the Synchronize view to resolve the conflicts. It is considered a more ideal workflow to always update before committing in order to ensure that you have the latest state of the repository before committing more changes.

If one or more of the resources being committed are new and not yet added to CVS control, they will be added automatically unless they are explicitly removed by choosing Remove from View from the context menu.

To commit changes in the Synchronize view:

1. In one of the navigation views, select the resources that you want to commit.
2. Right-click to open the pop-up menu and select Team > Synchronize with Repository. The Synchronize view will open.
3. On the toolbar of the Synchronize view, select the Outgoing mode button to show any modified Workbench resources (outgoing changes) that you may have.
4. If there are conflicts (red arrows), resolve them. To do so. open them in a Compare editor and use the text compare area to merge resources with conflicts. You can copy changes from the repository revision of the file to the Workbench revision of the file and save the merged Workbench resource. Once all the conflicts in the Structure Compare area have been resolved, perform a Mark as Merged on the resource in the Synchronize view to make the change an outgoing change and you are ready to commit.
5. In the Structure Compare pane, right-click the top of the hierarchy that you want to commit, and select Commit from the pop-up menu.
6. In the Commit Comment dialog box, provide a comment for your changes (for example, `Fixed the spelling mistakes`). Again, if there are new files of an unknown type, you will be asked to specify what type they should be.

Tip: You can commit files that are in conflict by performing an Override and Commit. This will commit the Workbench copy of the resource into the repository and thus remove any of the incoming changes.

Warning: The behavior of the Override and Commit command described above only applies to the outgoing mode of the Synchronize view. In the Incoming/Outgoing mode of the view, the behavior for outgoing changes and conflicts is the same but the command will revert incoming changes to whatever the local Workbench contents are. Exercise great caution if using this command in incoming/outgoing mode.

Team programming with CVS
CVS Repositories
Branches
Synchronizing with a CVS repository

Updating
Resolving conflicts
Comparing resources
Version control life cycle: adding and ignoring resources

CVS
Synchronize view