Another option instead of either updating the local copy or commiting to the repository copy of a solution is to use the Synchronize command. This is available not only in an SVN team provider, but other team providers as well.
Benefits of Synchronizing
There are some benefits of using synchronize instead of using commit or update.
- Ability to review changes - Synchronize allows the developer to compare the repository to their local environment. The can see the changes before they are actually applied. Commit or update will apply changes without review. This can be very handy if you have novice developers that might make harmful changes to the program without realizing it; the changes can be reviewed before application to your local system.
- Fix conflicts - Synchronize will show any conflicts between the repository and local system. It also will open the synchronize perspective, which has tools to review both versions and fix conflicts.
- Right-click the active solution node and from the contextual popup menu, select Team > Synchronize with Repository
- You may see a dialog warning that you are changing perspectives.
- In the synchronize perspective, you can filter incoming, and outgoing changes, as well as conflicts. You can update and commit one, many or all resources.
Team Synchronizing Prospective
This special perspective is designed to work with a repository during the synchronization process. Syncs, as well as commits and update when conflicts occur, will trigger Eclipse to switch to this prospective.
Below is an image of the toolbar available in the Synchronize view of the Team Synchronizing Prospective. Some of the functionality available here includes (number corresponds with number above button):
- Incoming Mode - The view will switch to show only incoming changes (available for update)
- Outgoing Mode - The view will switch to show only outgoing changes (available for commit)
- Incoming/Outgoing Mode - The view will show all changes. This is the default mode.
- Conflicts Mode - The view will only show conflicts between the local and the repository code.
- Update All Incoming Changes - This command will bring in all the incoming changes to the local system.
- Commit All Outgoing Changes - This command will send all the outgoing changes to the repository.