## Compare with another branch or version

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

You should be able to select a project/folder/resource and compare against another branch or version. Multi-select should work across projects in different repositories. Once the comparison is shown it should be possible to merge changes into the local workspace. It should also be possible to remember the comparison, which will cause it to appear in the synchronize view.

We should support multi-selection of files, but I'm not sure what should be shown to the user in those cases.

### On file selected

- If the file has differences open a compare editor and show otherwise a message is shown to indicate that the file is the same.
- should be able to open the history view and link in to the opened compare editor
- the compare editor should update when changes are made to the local file in some other context (e.g other editor, refactoring).

### Multiple selection

Entire contents of the folder are compared deep. If changes are found the user is notified and they are shown in a dialog. If no changes are found the user is notified. The dialog should allow the user to browse the changes and merge anything into his workspace. If the user wants to keep the comparison non-model, he can add it to the synchronize view. There is a button to do so on the compare dialog.

### Merging changes

When the compare dialog is showing several changes you should be able to selectively merge anything into the local workspace. Specific attention should be made to the following cases:

- Edit the local then press ok. You should be prompted to save the changes and the changes should be correctly updated in the corresponding resource.
- Edit the local and browse to another file. You should be prompted to save the changes.
- Press the cancel button with changes, you should be prompted.