blob: 6ae9432ac2d81373899d5b89196c8ba1fedc0e6a [file] [log] [blame]
<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>