Change Sets

## Change Sets Layout

Since: 3.1 M2
Last Modified: $Date$

### Change Sets for incoming changes

To perform these scenarios you will need to get one or more projects in your workspace that have many incoming changes. Preferably all the changes will have commit comments and some files will share a comment. Once you have this setup, you can perform the following sub-scenarios.

#### Enabling/disabling Change Sets

1. Synchronize the projects with HEAD, enable change set mode and ensure that the files appear in the proper change sets. Also ensure that the proper sub-layout is used by expanding some of the nodes in the tree.
2. With some nodes expanded and additionally one or more selected, disable Change Sets. The same nodes should remain expanded and selected.
3. With the same nodes selected and expanded, re-enable change sets. The expansion should remain. There may be more expanded if the same expanded project or folder appears in multiple change sets. The selection will remain unless there are two entries for the same resource (i.e. if a project was selected and it appears in multiple sets, it will no longer be expanded).

You should also confirm that markers and conflicts are properly propagated to parent nodes.

#### Change Set Modes

1. Switch between the various modes and ensure that the displayed nodes are correct. Also ensure that expansion and selection is maintained.
2. Only Incoming and Outgoing mode show change sets.

#### Updating

With several nodes expanded, perform an update on one or more files that are incoming changes. Ensure that the updated files are removed from the view and that other expanded nodes remain expanded.

### Outgoing Sets

The following aspects of outgoing change sets should be tested:

1. Modified files can be added to a new or existing change set. Ensure that when they are added, the file remains visible in the Sync view.
2. Files in a change set can be transfered to another change set
3. If there is a default change set, any modified file that is not already part of a change set is placed in the default set. Files that are already in a set should stay in that set if more changes are made to the files.
4. The title and comment of a change set can be changed.
5. Layout and modes changes work properly for outgoing change sets in the Synchronize view.
6. Committing one or more files in a change set will result in a commit dialog that is primed with the comment from the set.
7. change sets (including which is the default), are preserved across restarts.