| <html> |
| <head> |
| <title>Synchronize View</title> |
| <LINK REL=STYLESHEET HREF=../book.css CHARSET=ISO-8859-1 TYPE=text/css> |
| <meta NAME="keywords" content=""> |
| <meta NAME="since" content=""> |
| </head> |
| <body> |
| <h2>Synchronize View</h2> |
| <p>Since: 3.0<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <h3>Synchronize View Modes</h3> |
| |
| <p>Ensure that choosing direction modes result in proper filtering.</p> |
| |
| <ul> |
| <li>Incoming mode contains incoming changes and conflicts.</li> |
| <li>Outgoing mode contains outgoing changes and conflicts.</li> |
| <li>Both mode contains all change types.</li> |
| <li>Conflict mode contains only conflicts.</li> |
| </ul> |
| |
| <p>Also ensure that there are no empty containers (e.g folders or |
| projects) in any of the modes.</p> |
| |
| <h3>Synchronize View Models</h3> |
| |
| <p>Ensure that each model contains the appropriate output. Models to |
| test include:</p> |
| <ul> |
| <li>All Models: Projects should contain content from the highest |
| level model (e.g. Java projects contains Java content like packages |
| while non-Java projects contains folders).</li> |
| <li>Workspace: All projects are shown and contain folders. For |
| this model, also test the presentation types (Flat, Hierarchical and |
| Compressed Folders).</li> |
| <li>Java: Only Java projects are present and contain Java content |
| (e.g. packages). Also ensure that any resource content is present (e.g. |
| non-source folders).</li> |
| <li>Change Sets: All changes are grouped by change set.</li> |
| </ul> |
| |
| <p>Also ensure that mode switching works properly for each model |
| type.</p> |
| |
| <h3>Synchronize View Operations</h3> |
| <p>Ensure Commit and Update buttons:</p> |
| <ul> |
| <li>operate on all applicable changes</li> |
| <li>prompt in some form before executing</li> |
| </ul> |
| <p>Ensure Update menu action:</p> |
| <ul> |
| <li>is enabled when selection contains incoming or conflicting |
| changes</li> |
| <li>operates only on selected changes</li> |
| <li>silently handles mergable conflicts</li> |
| <li>will prompt if conflicts are not mergable</li> |
| </ul> |
| <p>Ensure Commit menu action</p> |
| <ul> |
| <li>is enable when selection contains outgoing changes</li> |
| <li>prompts for unadded resources</li> |
| <li>operates only on selected changes</li> |
| </ul> |
| <p>Ensure Override and Update</p> |
| <ul> |
| <li>is enabled for outgoing and conflicting changes</li> |
| <li>prompts to confirm</li> |
| <li>operates only on selected changes</li> |
| </ul> |
| <p>Ensure Mark as Merged</p> |
| <ul> |
| <li>is enabled for incoming and conflicting changes</li> |
| <li>operates only on selected changes</li> |
| </ul> |
| |
| <p>Ensure Refresh button refreshes all projects regardless of mode, |
| selection or working set.</p> |
| <p>Ensure Refresh menu action refreshes only the selection</p> |
| |
| <p>All actions on large sets</p> |
| |
| The following table can be used to determine what operations are |
| appropriate and what result to expect. |
| |
| <table height="124" border="1" width="99%"> |
| <tbody> |
| <tr> |
| <td width="25%"><b>Change Type</b></td> |
| <td width="25%"><b>Action</b></td> |
| <td width="50%"><b>Result</b></td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Change</b></td> |
| <td width="25%">Update</td> |
| <td width="50%">Remote contents become local. Try with both Text |
| and Binary files.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Change</b></td> |
| <td width="25%">Mark as Merged</td> |
| <td width="50%">File becomes an outgoing change.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Addition</b></td> |
| <td width="25%">Update</td> |
| <td width="50%">Remote contents become local. Try with both Text |
| and Binary files.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Addition</b></td> |
| <td width="25%">Mark as Merged</td> |
| <td width="50%">File becomes an outgoing deletion.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Deletion</b></td> |
| <td width="25%">Update</td> |
| <td width="50%">Local file is deleted.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Incoming File Deletion</b></td> |
| <td width="25%">Mark as Merged</td> |
| <td width="50%">File becomes an outgoing addition.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Change</b></td> |
| <td width="25%">Commit</td> |
| <td width="50%">Prompt for release comment. Cancel aborts, OK |
| commits local file to server.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Change</b></td> |
| <td width="25%">Override and Update</td> |
| <td width="50%">Remote contents become local. Try with both Text |
| and Binary files.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Addition</b></td> |
| <td width="25%">Add to Version Control</td> |
| <td width="50%">Adds the file to version control. The icon |
| should change in the sync view, and Commit should now be enabled.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Addition</b></td> |
| <td width="25%">Add to .cvsignore</td> |
| <td width="50%">Adds the file to .cvsignore. The file should |
| disappear from the sync view. The .cvsignore file should appear (if |
| it wasn't visible already). The file should not appear in subsequent |
| syncs.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Addition</b></td> |
| <td width="25%">Commit</td> |
| <td width="50%">Prompt for release comment should also include |
| prompt for file type if the type of the new file is not known. Cancel |
| aborts, OK commits local file to server.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Addition</b></td> |
| <td width="25%">Override and Update</td> |
| <td width="50%">Local file is deleted.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Deletion</b></td> |
| <td width="25%">Commit</td> |
| <td width="50%">Prompt for release comment. Cancel aborts, OK |
| commits deletion to server.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Outgoing File Deletion</b></td> |
| <td width="25%">Override and Update</td> |
| <td width="50%">File is re-created, remote contents become |
| local.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Conflicting File Change</b></td> |
| <td width="25%">Update</td> |
| <td width="50%">If the change is auto-mergable, the file becomes |
| an outgoing change and includes the remote changes and the local |
| changes. Otherwise, the user is prompted to indicate that a merge was |
| not possible.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Conflicting File Change</b></td> |
| <td width="25%">Mark As Merged</td> |
| <td width="50%">File becomes an outgoing change.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Conflicting File Change</b></td> |
| <td width="25%">Override and Update</td> |
| <td width="50%">Dialog prompts user to replace local changes. If |
| user cancels nothing happens. If user chooses OK, then local changes |
| are discarded and remote contents replace local. No .# files created, |
| no CVS markup, and the file is not dirty as a result.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Conflicting File Addition</b></td> |
| <td width="25%">Mark as Merged</td> |
| <td width="50%">File becomes an outgoing change.</td> |
| </tr> |
| <tr> |
| <td width="25%"><b>Conflicting File Addition</b></td> |
| <td width="25%">Override and Update</td> |
| <td width="50%">Remote contents become local.</td> |
| </tr> |
| </tbody> |
| </table> |
| |
| </body> |
| </html> |