## Performing a Synchronize

Since: 3.0
Last Modified: $Date: 2007/05/18 13:54:37 $

Synchronizing means to compare your local workspace contents with the contents in another location with the goal that the two locations should contain the same contents at some point.

### Performing a Synchronize operation

There are a few ways of launching a synchronize operation. They all open the same dialog but the initial selection is affected by where the operation is launched. Here is the list of ways to start a synchronize along with the expected initial selection.

- Using the global synchronize action (via toolbar or keybinding): The selection should be obtained from the active view. If no view is active, all projects should be selected.
- Using the Synchronize button in toolbar of the Synchronize view: All projects should be selected.
- Selecting Synchronize from the context menu of resources in the synchronize view: The selection should match what was selected when the menu was selected.
- Selecting Team > Synchronize with Repository from the context menu of any resource based view: The selection should match what was selected when the menu was selected.

Once launched, a synchronize will run in the background. Currently, the user is prompted to switch perspectives when the synchronize is launched. When a synchronize completes, the user is prompted either with a dialog stating there is no changes or one that contains a details area that shows the incoming changes. The user is given the option to suppress the post-synchronize dialog.

### Notice a file is out-of-sync in another view (e.g. packages explorer, types) and want to see the changes

In case you can select a file, it will be refreshed with the server, and if changes are found the compare editor is opened that will allow browsing the changes. If no changes are found, you will be prompted.

### From another view would like to browse the outgoing/incoming changes for several resources

Select a folder or group of files and Team > Synchronize will open the sync view and automatically refresh with the remote repository.

### In the sync view and would like to refresh to see if there are new changes from the server

Assumption, the sync view may or may not be open when the synchronize is performed. Maybe we need a different prompt each case. One for Team > Sync and another for refresh from the sync view.