| <html><head><title>Team/CVS Test Plan</title><style type='text/css'>h1 {color: white;background-color: #0080C0;padding-left: 1ex;padding-right: 1ex;}h1 {font-weight: bold;padding-top: 0.5ex;padding-bottom: 0.5ex;margin-top: 0;}</style></head><body> |
| |
| <!-- KEEP START --> |
| <h1>Eclipse Team and CVS 3.4 Test Plan</h1> |
| |
| <p>This plan contains a detailed listing of the features available |
| in the Eclipse CVS plug-in. There are some items that don't have many |
| steps but are meant as a reminder that the features exist and should be |
| tested. If you want to help, please feel free to hammer away on some |
| bits of functionality.</p> |
| |
| <p>For a more verbose explanation of the CVS plug-in please refer to |
| our documentation.</p> |
| |
| <h2>CVS Server Versions</h2> |
| |
| <p>We focus our testing on the latest stable *nix server version. We |
| will however sniff test the latest developer *nix server and the cvsnt |
| server. In addition, we will run our automated tests on all three |
| flavors. The current server lineup is:</p> |
| |
| <p>Latest Stable: <span style="font-weight: bold;">1.11.22</span></p> |
| |
| <p>Latest Development: <span style="font-weight: bold;">1.12.13</span> |
| </p> |
| |
| <p>CVS NT: <span style="font-weight: bold;">2.5.03.2382</span></p> |
| |
| <h2>Testing Tips</h2> |
| |
| <ul> |
| <li><font color="#000000">test corner cases</font></li> |
| <li>test setups which we typically don't use during development |
| (for example no Plug-in development)</li> |
| <li><font color="#000000">handling of error situations</font> |
| <ul> |
| <li><font color="#000000">watch log</font></li> |
| <li><font color="#000000">error messages</font></li> |
| </ul> |
| </li> |
| </ul> |
| |
| <ul> |
| <li>Whenever you have to fill in data in dialogs try to foul the |
| dialog by providing incomplete or bogus input</li> |
| <li>Watch for view updating (package explorer, browsing |
| perspective, outliner) when source content gets changed</li> |
| </ul> |
| |
| <ul> |
| <li>change font for text editor and dialogs to different font</li> |
| <li>check that dialogs are rendered correctly |
| <ul> |
| <li>specified dialog font is used</li> |
| <li>no buttons and labels clipped</li> |
| </ul> |
| </li> |
| </ul> |
| |
| <ul> |
| <li>detached views</li> |
| <li>dialogs pop up on correct monitor</li> |
| </ul> |
| |
| <h2>Platforms</h2> |
| |
| <table border="1" width="821"> |
| <tbody> |
| <tr bgcolor="#cccccc"> |
| <th colspan="4"> |
| <div align="center"><b><font size="+1">Eclipse |
| Reference Platforms</font></b></div> |
| </th> |
| </tr> |
| <tr> |
| <td width="205"><b>Operating system</b></td> |
| <td width="76"><b>Processor architecture</b></td> |
| <td width="59"><b>Window system</b></td> |
| <td width="453"><b>Tester</b></td> |
| </tr> |
| <tr> |
| <td width="205">Microsoft Windows XP</td> |
| <td width="76">Intel x86</td> |
| <td width="59">Win32</td> |
| <td width="453"><br> |
| </td> |
| </tr> |
| <tr> |
| <td width="205">Red Hat Enterprise Linux WS 3</td> |
| <td width="76">Intel x86</td> |
| <td width="59">GTK</td> |
| <td width="453"><br> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| |
| <h2>Areas assignments</h2> |
| |
| <ul> |
| <li><a href="mailto:Szymon.Brandys@pl.ibm.com">Szymon Brandys</a> |
| <ul> |
| <li><a href="#00004.html">Repositories View</a></li> |
| <li><a href="#00008.html">Comparing</a></li> |
| <li><a href="#commit00001.html">Commit</a></li> |
| <li><a href="#tags00001.html">Tags</a></li> |
| <li><a href="#00012.html">Branch/Merge</a></li> |
| <li><a href="#watch_edit00001.html">Watch/Edit</a></li> |
| <li><a href="#00014.html">History View</a></li> |
| </ul> |
| </li> |
| |
| <li><a href="mailto:Krzysztof.Michalski@pl.ibm.com">Krzysztof |
| Michalski</a> |
| <ul> |
| <li><a href="#00026.html">Sharing</a></li> |
| <li><a href="#00044.html">Replacing</a></li> |
| <li><a href="#00010.html">Synchronizing</a></li> |
| <li><a href="#00023.html">Restarting Workbench</a></li> |
| <li><a href="#00028a.html">SSH2</a></li> |
| <li><a href="#misc00001.html">Misc</a></li> |
| </ul> |
| </li> |
| |
| <li><a href="mailto:Michael_Valenta@ca.ibm.com">Michael |
| Valenta</a> |
| <ul> |
| <li><a href="#00029.html">Patching</a></li> |
| <li><a href="#00020.html">Concurrency</a></li> |
| <li><a href="#perf00001.html">Performance</a></li> |
| </ul> |
| </li> |
| |
| <li><a href="mailto:Tomasz.Zarna@pl.ibm.com">Tomasz.Zarna</a> |
| <ul> |
| <li><a href="#00033.html">Annotate</a></li> |
| <li><a href="#00035.html">Label Decorations</a></li> |
| <li><a href="#failures00001.html">Failure Cases</a></li> |
| <li><a href="#validate_edit00001.html">Validate Edit</a></li> |
| <li><a href="#logical00001.html">Logical Resource Support</a></li> |
| </ul> |
| </li> |
| </ul> |
| |
| <h2>Tests</h2> |
| <!-- KEEP END --> |
| <ul> |
| <li><a href="#00004.html">Repositories View</a> |
| <ul> |
| <li><a href="#repoview_basics00001.html">Basics</a> |
| <ul> |
| </ul> |
| <li><a href="#00007.html">Check Out - prompts</a> |
| <ul> |
| </ul> |
| <li><a href="#checkoutwizard00001.html">Check Out Wizard</a> |
| <ul> |
| </ul> |
| <li><a href="#datetags_repoview00001.html">Tags</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00026.html">Sharing</a> |
| <ul> |
| <li><a href="#sharingbasics00001.html">Basics</a> |
| <ul> |
| </ul> |
| <li><a href="#00027.html">Sharing as a subfolder</a> |
| <ul> |
| </ul> |
| <li><a href="#00028.html">Reconnecting an existing project</a> |
| <ul> |
| </ul> |
| <li><a href="#00050.html">Sharing a new project</a> |
| <ul> |
| </ul> |
| <li><a href="#project_sets00001.html">Project Sets</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00044.html">Replacing</a> |
| <ul> |
| <li><a href="#00045.html">With latest</a> |
| <ul> |
| </ul> |
| <li><a href="#00046.html">With another branch of version</a> |
| <ul> |
| </ul> |
| <li><a href="#00047.html">With file revision</a> |
| <ul> |
| </ul> |
| <li><a href="#update_command00001.html">Updating</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00008.html">Comparing</a> |
| <ul> |
| <li><a href="#00009.html">Remote resources</a> |
| <ul> |
| </ul> |
| <li><a href="#00039.html">Compare with another branch or version</a> |
| <ul> |
| </ul> |
| <li><a href="#00040.html">Reverting deleted resources</a> |
| <ul> |
| </ul> |
| <li><a href="#00041.html">File Revisions</a> |
| <ul> |
| </ul> |
| <li><a href="#quickdiff00001.html">Quick Diff</a> |
| <ul> |
| </ul> |
| <li><a href="#00051.html">Compare with each other</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00010.html">Synchronizing</a> |
| <ul> |
| <li><a href="#00048.html">Performing a Synchronize</a> |
| <ul> |
| </ul> |
| <li><a href="#00011.html">Synchronize View</a> |
| <ul> |
| </ul> |
| <li><a href="#00049.html">Decorations</a> |
| <ul> |
| </ul> |
| <li><a href="#change_sets00001.html">Change Sets</a> |
| <ul> |
| </ul> |
| <li><a href="#sync00001.html">Scenarios</a> |
| <ul> |
| </ul> |
| <li><a href="#syncRestart00001.html">Restart Behavior</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#commit00001.html">Commit</a> |
| <ul> |
| <li><a href="#commit00002.html">Committing Changes</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#tags00001.html">Tags</a> |
| <ul> |
| <li><a href="#tags00002.html">Tag Selection in Dialogs</a> |
| <ul> |
| </ul> |
| <li><a href="#tags00003.html">Tag Caching</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00012.html">Branch/Merge</a> |
| <ul> |
| <li><a href="#00022.html">Performing a Merge</a> |
| <ul> |
| </ul> |
| <li><a href="#00013.html">Synchronize View</a> |
| <ul> |
| </ul> |
| <li><a href="#branch00001.html">Branching</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00029.html">Patching</a> |
| <ul> |
| <li><a href="#00030.html">Importing a zip over a shared project</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00014.html">History View</a> |
| <ul> |
| <li><a href="#00018.html">Editor Linking</a> |
| <ul> |
| </ul> |
| <li><a href="#toolbarButtonsUMFile00001.html">Common Toolbar Buttons</a> |
| <ul> |
| </ul> |
| <li><a href="#groupByDateUMFile00001.html">Group Revisions by Date</a> |
| <ul> |
| </ul> |
| <li><a href="#localHistoryUnsharedFiles00001.html">Local History for Unshared Files</a> |
| <ul> |
| <li><a href="#DNDUMFile00001.html">Drag and Drop Unmapped File</a> |
| <ul> |
| </ul> |
| <li><a href="#showHistoryUMFile00001.html">Show History Unmapped File</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#cvsHistory00001.html">CVS History</a> |
| <ul> |
| <li><a href="#DNDCFile00001.html">Drag and Drop CVS File</a> |
| <ul> |
| </ul> |
| <li><a href="#00024.html">Annotate</a> |
| <ul> |
| </ul> |
| <li><a href="#modeSwitching00001.html">Mode Switching</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#pinHistoryView00001.html">Pin History View</a> |
| <ul> |
| </ul> |
| <li><a href="#refreshHistory00002.html">Refresh</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00020.html">Concurrency</a> |
| <ul> |
| <li><a href="#00021.html">Close and disconnect</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00023.html">Restarting Workbench</a> |
| <ul> |
| <li><a href="#00019.html">Crash Recovery</a> |
| <ul> |
| </ul> |
| <li><a href="#00025.html">Synchronize View Settings</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00028a.html">SSH2</a> |
| <ul> |
| <li><a href="#00029a.html">Server version compatibiliity</a> |
| <ul> |
| </ul> |
| <li><a href="#00030a.html">Proxies</a> |
| <ul> |
| </ul> |
| <li><a href="#00031.html">Generating keys</a> |
| <ul> |
| </ul> |
| <li><a href="#00032.html">General use</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00033.html">Annotate</a> |
| <ul> |
| <li><a href="#00034.html">Show Annotation Action</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#00035.html">Label Decorations</a> |
| <ul> |
| <li><a href="#00036.html">Enablement at startup</a> |
| <ul> |
| </ul> |
| <li><a href="#00037.html">Customizations</a> |
| <ul> |
| </ul> |
| <li><a href="#00038.html">Decorations in the Synchronize pages</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#watch_edit00001.html">Watch/Edit</a> |
| <ul> |
| <li><a href="#watch_edit_basic00001.html">Basic scenarios</a> |
| <ul> |
| </ul> |
| <li><a href="#watch_edit_editorsview00001.html">Editors View</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#perf00001.html">Performance</a> |
| <ul> |
| <li><a href="#perf00002.html">Timings</a> |
| <ul> |
| </ul> |
| <li><a href="#perf00004.html">Resource Data Structures</a> |
| <ul> |
| </ul> |
| <li><a href="#perf00005.html">Looking For Leaks</a> |
| <ul> |
| </ul> |
| <li><a href="#perf00006.html">Team Data Structures</a> |
| <ul> |
| </ul> |
| <li><a href="#perf00007.html">Scalability</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#failures00001.html">Failure Cases</a> |
| <ul> |
| <li><a href="#connections00001.html">Connections</a> |
| <ul> |
| </ul> |
| <li><a href="#auth_problems00001.html">Authentication Problems</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#misc00001.html">Misc</a> |
| <ul> |
| <li><a href="#00042.html">CVS Console</a> |
| <ul> |
| </ul> |
| <li><a href="#keys00001.html">Key Bindings</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#validate_edit00001.html">Validate Edit</a> |
| <ul> |
| <li><a href="#validate_edit_editing_files00001.html">Editing Files</a> |
| <ul> |
| </ul> |
| <li><a href="#validate_edit_refactoring00001.html">Refactoring</a> |
| <ul> |
| </ul> |
| </ul> |
| <li><a href="#logical00001.html">Logical Resource Support</a> |
| <ul> |
| <li><a href="#logical00002.html">Java Packages</a> |
| <ul> |
| </ul> |
| <li><a href="#logical00003.html">Working Sets</a> |
| <ul> |
| </ul> |
| </ul> |
| </ul> |
| <a name="00004.html"/> |
| <h1>Repositories View</h1> |
| <a name="repoview_basics00001.html"/> |
| |
| <h2>Basics</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <h3>Adding and Discarding Locations</h3> |
| |
| <p>You should be able to create a repository location from the |
| toolbar of the view or via the context menu. Try expanding the location, |
| the HEAD, Versions and Branches categories. Also, try the failures cases |
| from <a href="connections00001.html">Connections</a>. Things to try:</p> |
| |
| <ul> |
| <li>Create repo locations for different connection types: ext, |
| pserver, extssh.</li> |
| <li>Create a repo location by pasting a location string into the |
| host field (e.g. :pserver:anonymous@dev.eclipse.org:/home/eclipse).</li> |
| <li>Expanding project nodes should process the children in the |
| background and the view should remain responsive while this is |
| happening. When children nodes are added to the tree the tree shouldn't |
| be too jumpy.</li> |
| <li>Discard a location and ensure it is removed. Also ensure that |
| discarding is not permitted when projects in the local workspace are |
| shared with the location.</li> |
| </ul> |
| |
| <h3>Repository Location Properties</h3> |
| |
| View a location's properties page and ensure that information is correct |
| and can be changed. Ensure that the sharing information for any projects |
| mapped to the location are also changed. |
| |
| <h3>Modules</h3> |
| |
| <h3>Working with modules</h3> |
| |
| <ul> |
| <li>Expanding HEAD or the Versions category should display the |
| modules defined in the CVSROOT/modules file</li> |
| <li>Check Out and Checkout As should be available on modules and |
| should work as expected</li> |
| <li>Performing a "Configure Branches and Versions" on the module |
| allows the user to set the autorefresh file and add some tags. Ensure |
| that the module now appears properly in association with those tags.</li> |
| </ul> |
| |
| |
| <a name="00007.html"/> |
| |
| <h2>Check Out - prompts</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2004/06/01 19:14:48 $</p> |
| |
| <h3>Scenario 1</h3> |
| <ol> |
| <li>Select a project in HEAD</li> |
| <li>Perform a Checkout</li> |
| <li>Ensure project was checked out properly</li> |
| <li>Select the same project and choose Checkout As</li> |
| <li>Use the same name and specify a custom location</li> |
| <li>Ensure that the user is prompted to overwrite</li> |
| <li>Ensure OK and Cancel have proper behavior</li> |
| </ol> |
| |
| <h3>Scenario 2</h3> |
| <ol> |
| <li>Select a project in HEAD</li> |
| <li>Perform a Checkout</li> |
| <li>Ensure project was checked out properly</li> |
| <li>Delete the project but leave the contents on disk</li> |
| <li>Perform a Checkout of the same project again</li> |
| <li>Ensure that the user is prompted to overwrite</li> |
| <li>Ensure OK and Cancel have proper behavior</li> |
| </ol> |
| |
| <h3>Scenario 3</h3> |
| <ol> |
| <li>Select a project in HEAD</li> |
| <li>Perform a Checkout As</li> |
| <li>Use the same name and specify a custom location</li> |
| <li>Ensure project was checked out properly</li> |
| <li>Delete the project but leave the contents on disk</li> |
| <li>Perform a Checkout As of the same project to the same location |
| as in step 3</li> |
| <li>Ensure that the user is prompted to overwrite</li> |
| <li>Ensure OK and Cancel have proper behavior</li> |
| </ol> |
| |
| <h3>Scenario 4</h3> |
| <ol> |
| <li>Select a project in HEAD</li> |
| <li>Perform a Checkout As</li> |
| <li>Use the same name and specify a custom location</li> |
| <li>Ensure project was checked out properly</li> |
| <li>Delete the project but leave the contents on disk</li> |
| <li>Perform a Checkout on the project</li> |
| <li>Ensure project was checked out properly</li> |
| <li>Perform a Checkout As of the same project to the same location |
| as in step 3</li> |
| <li>Ensure that the user is prompted twice: once to overwrite |
| project and once to overwrite custom location</li> |
| <li>Ensure OK and Cancel have proper behavior</li> |
| </ol> |
| |
| |
| <a name="checkoutwizard00001.html"/> |
| |
| <h2>Checkout Wizard</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>The checkout wizard should be available from the following parts |
| of the workbench: import, new project, empty workspace CVS synchronize |
| action, toolbar in CVS perspective. The checkout wizard is also |
| available from the context menu of the repositories view as the Checkout |
| As menu item.</p> |
| |
| The following variants should be tested: |
| <ul> |
| <li>Create a new repository location and checkout a project |
| entirely from the wizard.</li> |
| <li>Check out a tag</li> |
| <li>Check out a project that does not contain a .project file. |
| This should result in a second wizard that allows project configuration |
| (e.g. Java project).</li> |
| </ul> |
| |
| <h3>Repositories View Checkout Variants</h3> |
| These tests require an existing repository which contains projects, at |
| least one of which does not contain a .project file. |
| |
| <ol> |
| <li>Perform "Check Out" on a single project. Ensure that repeating |
| results in overwrite prompt.</li> |
| <li>Perform "Check Out" on multiple projects.</li> |
| <li>Perform "Check Out As..." on a single project (that contains a |
| .project file) and enter custom name and/or custom location.</li> |
| <li>Perform "Check Out As..." on a single remote project that does |
| not have a .project file and ensure that the user is prompted for the |
| project type to create.</li> |
| <li>Perform "Check Out As..." on multiple projects and enter a |
| custom parent location.</li> |
| <li>Perform "Check Out As..." and specify a tag.</li> |
| </ol> |
| |
| |
| <a name="datetags_repoview00001.html"/> |
| |
| <h2>Tags</h2> |
| <p>Since: 3.0<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| <body> |
| |
| <h3>Refresh Branches and Versions</h3> |
| <ol> |
| <li>Select a repository location and perform "Refresh Branches and |
| Versions...".</li> |
| <li>Select one or more projects that contain a .project file and |
| have been tagged with branch and version tags and click finish.</li> |
| <li>Expand the repository entry to view ... |
| <ul> |
| <li>projects in HEAD,</li> |
| <li>branches and projects in BRANCHES,</li> |
| <li>projects and versions in VERSIONS.</li> |
| </ul> |
| </li> |
| </ol> |
| |
| <h3>Configure Branches and Versions</h3> |
| <ol> |
| <li>Select a project in the repositories view and perform |
| "Configure Branches and Versions...".</li> |
| <li>Select some branch and version tags to be remembered.</li> |
| <li>Expand the repository entry to view ... |
| <ul> |
| <li>projects in HEAD,</li> |
| <li>branches and projects in BRANCHES,</li> |
| <li>projects and versions in VERSIONS.</li> |
| </ul> |
| </li> |
| </ol> |
| |
| <h3>Date Tags</h3> |
| The ability to create Date tags should be available from the following |
| locations: |
| |
| <ul> |
| <li>Repositories view</li> |
| <li>Configure Branches and Versions dialog</li> |
| <li>Tag selection dialogs (Compare with and Replace with Branch or |
| Version)</li> |
| </ul> |
| |
| |
| <a name="00026.html"/> |
| <h1>Sharing</h1> |
| <a name="sharingbasics00001.html"/> |
| |
| <h2>Basics</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 19:14:48 $</p> |
| |
| <p>Single select a project and select share.</p> |
| <ul> |
| <li>Should only be available if the project is not shared.</li> |
| <li>Menu item should be available from the Project top level menu.</li> |
| <li>Wizard should allow you to cancel at any time and un-map the |
| project. Note that some resources may of been committed via the wizard |
| that will remain committed.</li> |
| <li>Should be able to share as a repository root {".") or a folder |
| at any level (i.e. a folder name with one or more paths).</li> |
| </ul> |
| |
| |
| <a name="00027.html"/> |
| |
| <h2>Sharing as a subfolder</h2> |
| <p>Since: 3.0 M6<br> |
| Last Modified: $Date: 2007/05/23 13:19:15 $</p> |
| |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Create a new project</li> |
| <li>Select Team>Share</li> |
| <li>Select a repository and click Next</li> |
| <li>Enter a path with at least two segments as the remote module |
| name</li> |
| <li>Click Finish</li> |
| </ol> |
| <p>Ensure that the project was shared properly (i.e. remote folders |
| were created).</p> |
| |
| <a name="00028.html"/> |
| |
| <h2>Reconnecting an existing project</h2> |
| <p>Since: 3.0 M6<br> |
| Last Modified: $Date: 2007/05/23 13:19:15 $</p> |
| <p>The following scenario represents how a user would reconnect a |
| project that does not contain CVS meta-data to it's remote counterpart. |
| It is assumed that the local project was derived from a previous version |
| of the remote project but both the local project and the remote may have |
| been modified since then.</p> |
| <h3>Scenario 1: Existing location using project name</h3> |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Load an existing project (using Checkout or you could import a |
| plug-in project from the target area).</li> |
| <li>Disconnect the project and indicate that CVS meta-data is to |
| be deleted.</li> |
| <li>Modify some local resources.</li> |
| <li>Optionally, modify the remote contents of some resources using |
| a separate checkout.</li> |
| <li>Perform a Team>Share Project and select CVS (if there is more |
| than one repository provider available).</li> |
| <li>Select the repository the project was loaded from and click |
| Next.</li> |
| <li>Use the project name as the module name. Click Next.</li> |
| <li>In the tag page, select HEAD as the branch to share with and |
| click Next.</li> |
| <li>In the sharing page, only the files that do not have the same |
| contents as the server should appear. Perform a Mark as Merged or |
| Commit on these files.</li> |
| <li>Click Finish.</li> |
| </ol> |
| |
| <h3>Scenario 1: New location using custom module name</h3> |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Load an existing project using Checkout As and a different |
| name.</li> |
| <li>Disconnect the project and indicate that CVS meta-data is to |
| be deleted.</li> |
| <li>Discard the repository location.</li> |
| <li>Modify some local resources.</li> |
| <li>Optionally, modify the remote contents of some resources using |
| a separate checkout</li> |
| <li>Perform a Team>Share Project and select CVS (if there is more |
| than one repository provider available).</li> |
| <li>Select to create a new repository and click Next.</li> |
| <li>Enter the repository information for the repository and click |
| Next.</li> |
| <li>Enter the name of the module that the project was loaded from. |
| Click Next.</li> |
| <li>In the tag page, select HEAD as the branch to share with and |
| click Next.</li> |
| <li>In the sharing page, only the files that do not have the same |
| contents as the server should appear. Perform a Mark as Merged or |
| Commit on these files.</li> |
| <li>Click Finish.</li> |
| </ol> |
| |
| |
| <a name="00050.html"/> |
| |
| <h2>Sharing a new project</h2> |
| <p>Since: 3.0 M8<br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <h3>Scenario 1: Existing location using project name</h3> |
| |
| <p>Perform the following steps:</p> |
| |
| <ol> |
| <li>Create a new project that does not exist in the repository</li> |
| <li>Select Team>Share and select CVS (if there is more than one |
| repository provider available).</li> |
| <li>Select a repository and click Next</li> |
| <li>Use the project name as the module name. Click Next.</li> |
| <li>After a time, the last page should show the outgoing changes |
| in the project. Commit the changes from the synchronize pane.</li> |
| <li>Click Finish</li> |
| </ol> |
| |
| <h3>Scenario 2: New location using different name</h3> |
| |
| <p>Perform the following steps:</p> |
| |
| <ol> |
| <li>Create a new project</li> |
| <li>Select Team>Share and select CVS (if there is more than one |
| repository provider available).</li> |
| <li>Select to create a new repository and click Next</li> |
| <li>Enter the repository information for a new repository and |
| click Next</li> |
| <li>Enter a single segment module name that does not exist in the |
| repository and click Next.</li> |
| <li>After a time, the last page should show the outgoing changes |
| in the project. Commit the changes from the synchronize pane.</li> |
| <li>Click Finish</li> |
| </ol> |
| |
| |
| <a name="project_sets00001.html"/> |
| |
| <h2>Project Sets</h2> |
| <p>Since: 2.1 <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <ul> |
| <li>Create a project set from a workspace with multiple projects |
| shared with CVS. The shared projects in the workspace should include |
| projects shared with the following: branch, version, date and HEAD.</li> |
| <li>Start with an empty workspace and import the projects using |
| the import projects sets wizard. Try running Project Set import in the |
| background too.</li> |
| <li>You should be prompted for a password and username for the |
| locations.</li> |
| <li>Ensure that the projects are checked out correctly and against |
| the correct tag.</li> |
| </ul> |
| |
| |
| <a name="00044.html"/> |
| <h1>Replacing</h1> |
| <a name="00045.html"/> |
| |
| <h2>With latest</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>Ensure that the replace operation overwrites any outgoing |
| changes. And verify the following:</p> |
| <ul> |
| <li>Label decorations (e.g. outgoing change flag, version) are |
| updated in the navigator/packages view and synchronize view.</li> |
| </ul> |
| |
| |
| <a name="00046.html"/> |
| |
| <h2>With another branch of version</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>Check the following for all cases of replace:</p> |
| <ul> |
| <li>Decorators are updated in the navigator/packages view and |
| synchronize view.</li> |
| <li>If a version is loaded that you can't commit to it</li> |
| <li>If a branch is loaded, that you can commit to it.</li> |
| </ul> |
| |
| <p>Also ensure that the tag filtering in the dialog works properly.</p> |
| |
| |
| <a name="00047.html"/> |
| |
| <h2>With file revision</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <ul> |
| <li>If the file isn't managed the action should no appear.</li> |
| <li>If the file doesn't have any revisions you should be prompted</li> |
| <li>If the file has revisions you should be prompted with the list |
| of revisions in a compare dialog</li> |
| <li>In the compare dialog you can select any revision and compare |
| changes but merging isn't supported</li> |
| <li>If a revision is selected the Replace button should be |
| enabled. Otherwise it should be disabled</li> |
| <li>If you selected the replace button the file should contain the |
| contents of the revision selected. The dialog will also close.</li> |
| <li>Ensure that the titles are ok (e.g. dialog title, structure |
| pane title...)</li> |
| </ul> |
| |
| |
| <a name="update_command00001.html"/> |
| |
| <h2>Updating</h2> |
| <p>Since: 2.0 <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <p>You can run an update and open the console to see the files that |
| are being updated.</p> |
| <p>You can run the update and switch to another branch, this should |
| keep your outgoing changes and update all other non-changed files.</p> |
| |
| |
| <a name="00008.html"/> |
| <h1>Comparing</h1> |
| <a name="00009.html"/> |
| |
| <h2>Remote resources</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| <h4>Compare With... in Repositories view</h4> |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Select a project in HEAD and choose Compare With... from |
| context menu</li> |
| <li>Select a branch tag</li> |
| <li>Ensure result of comparison is correct</li> |
| <li>Repeat and in step 2) use a version tag</li> |
| </ol> |
| <p>Repeat the above steps for a project in a branch and a project |
| version.</p> |
| <p>Repeat the above steps for a selected folder and a selected file.</p> |
| <h4>Compare on two selections in Repositories view</h4> |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Select a project in HEAD</li> |
| <li>CTRL-select a project in a branch</li> |
| <li>Choose Compare from context menu</li> |
| <li>Ensure result of comparison is correct</li> |
| </ol> |
| <p>Repeat the above for various combinations (branch + version, |
| version + branch, branch + branch, version + version).</p> |
| <p>Repeat the above steps for a selected folder and a selected file.</p> |
| <h4>Compare on two selections in Resource History view.</h4> |
| <p>Perform the following steps:</p> |
| <ul> |
| <li>Open Resource History view on a file with multiple revisions</li> |
| <li>Select 2 and choose Compare from the context menu</li> |
| <li>Ensure result of comparison is correct</li> |
| </ul> |
| |
| |
| <a name="00039.html"/> |
| |
| <h2>Compare with another branch or version</h2> |
| <p>Since: M8<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p>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.</p> |
| <p>We should support multi-selection of files, but I'm not sure what |
| should be shown to the user in those cases.</p> |
| <h3>On file selected</h3> |
| <ul> |
| <li>If the file has differences open a compare editor and show |
| otherwise a message is shown to indicate that the file is the same.</li> |
| <li>should be able to open the history view and link in to the |
| opened compare editor</li> |
| <li>the compare editor should update when changes are made to the |
| local file in some other context (e.g other editor, refactoring).</li> |
| </ul> |
| |
| <h3>Multiple selection</h3> |
| <p>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.</p> |
| |
| <h3>Merging changes</h3> |
| <p>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:</p> |
| <ul> |
| <li>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.</li> |
| <li>Edit the local and browse to another file. You should be |
| prompted to save the changes.</li> |
| <li>Press the cancel button with changes, you should be prompted.</li> |
| </ul> |
| |
| <a name="00040.html"/> |
| |
| <h2>Reverting deleted resources</h2> |
| <p>Since: M8<br> |
| Last Modified: $Date: 2004/06/01 19:14:48 $</p> |
| You should be able to restore a deleted revision from the CVS server |
| Team>Restore from Repository |
| |
| <a name="00041.html"/> |
| |
| <h2>File Revisions</h2> |
| <p>Since: M8<br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <h3>Compare the local resource with other revisions</h3> |
| <ul> |
| <li>If the file isn't managed the action should no appear.</li> |
| <li>If the file doesn't have any revisions you should be prompted</li> |
| <li>If the file has revisions you should be prompted with the list |
| of revisions in a compare dialog</li> |
| <li>In the compare dialog you can select any revision and merge |
| changes into the local copy</li> |
| <li>If you edit the local resource then chose OK, you will be |
| prompted to save changes. Ensure that the changes are saved correctly |
| to the underlying resource.</li> |
| <li>Ensure that the titles are ok (e.g. dialog title, structure |
| pane title...)</li> |
| </ul> |
| |
| |
| <a name="quickdiff00001.html"/> |
| |
| <h2>Quick Diff</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>Enable CVS quick diff for text and java files via the General > |
| Editors > Quick Diff preference. Then try the following scenarios:</p> |
| |
| <ol> |
| <li>Open a file and make changes to it. You will see the quickdiff |
| annotations marking the changes. Next, run Replace With > Latest from |
| HEAD. The annotations are removed and the file is clean.</li> |
| <li>Same as 1 but this time instead commit the file. The quickdiff |
| annotations are removed and the file is clean.</li> |
| <li>Checkout two copies of the same project. Open file1 from both |
| projects. Make changes to file1 in project1 and commit the change. |
| Synchronize project2 and file1 from project1 will show the quickdiff |
| annotations for the new incoming changes.</li> |
| <li>Same as previous but this time actually update the file. The |
| files quickdiff annotations are removed and the file is clean.</li> |
| </ol> |
| |
| |
| <a name="00051.html"/> |
| |
| <h2>Compare With Each Other</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/09/05 19:30:00 $</p> |
| |
| <h3>Compare a resource with other resource</h3> |
| <h5>The action</h5> |
| <ul> |
| <li>The action should appear only when there are 2 or 3 resources |
| selected.</li> |
| <li>If there are 3 resources selected you should be prompted to |
| select the common ancestor.</li> |
| </ul> |
| <h5>Look</h5> |
| <ul> |
| <li>Ensure that all titles and labels are ok (e.g. dialog title, |
| structure pane title, compare editor labels...).</li> |
| <li>Ensure that all buttons in the toolbar are properly enabled |
| (e.g. Copy All/Copy Current, Next/Prev Difference/Change).</li> |
| <li>Ensure that difference markers are properly display at start</li> |
| </ul> |
| <h5>Navigation</h5> |
| <ul> |
| <li>If you reach the first/last difference you should be prompted |
| to go to the end/start of the current element.</li> |
| <li>Ensure that you can correctly navigate through differences |
| using the difference markers on the right side of the editor.</li> |
| </ul> |
| <h5>Merging</h5> |
| <ul> |
| <li>Ensure that Copy All/Copy Current actions work as expected.</li> |
| <li>Ensure that when the Copy All action is used all difference |
| markers disappear.</li> |
| <li>Ensure that when the Copy Current action is used a proper |
| difference marker disappears.</li> |
| <li>Ensure you can Undo an action.</li> |
| </ul> |
| <h5>Saving</h5> |
| <ul> |
| <li>If you edit a local resource the dirty state indicator should |
| appear over the resource.</li> |
| <li>If you edit a local resource and the resource is also opened |
| in a different editor the dirty state should appear on that editor too.</li> |
| <li>If you edit both of the resources being compare (both are |
| local), changes should be saved to both of them.</li> |
| <li>If you edit a resource and close the editor you should be |
| prompted to save or abandon changes.</li> |
| <li>If you edit both of the resources and close the editor you |
| should be prompted to select which resources to save using the Save |
| Resources dialog.</li> |
| <li>Ensure you can Undo a change.</li> |
| <li>Ensure that changes are saved correctly to the underlying |
| resource.</li> |
| </ul> |
| |
| <h5>Concurrent edition</h5> |
| <ul> |
| <li>Scenario 1 |
| <ol> |
| <li>Compare two local resources using the Compare Editor.</li> |
| <li>Open one of them in the default editor (F3) and edit it.</li> |
| <li>Ensure that the resource gets the dirty state indicator over |
| both editors (i.e default and Compare).</li> |
| <li>If you save the resource in the default editor the dirty |
| state indicator should go off for both editors.</li> |
| <li>Ensure that changes are saved correctly to the underlying |
| resource.</li> |
| </ol> |
| </li> |
| <li>Scenario 2a |
| <ol> |
| <li>Compare two local resources using the Compare Editor.</li> |
| <li>Open one of them in the default editor (F3) and edit it.</li> |
| <li>Ensure that the resource gets the dirty state indicator over |
| both editors (i.e default and Compare).</li> |
| <li>If you close the default editor you should be prompted to |
| save changes, exiting without saving or cancel.</li> |
| <li>Select exit without saving (button named "No").</li> |
| <li>Ensure that the resource under the Compare Editor is still in |
| the dirty state.</li> |
| <li>Ensure that changes are the same as made using the default |
| editor.</li> |
| <li>Ensure that changes can be saved to the underlying resource |
| from the Compare Editor.</li> |
| <li>Ensure that changes are saved correctly to the underlying |
| resource.</li> |
| </ol> |
| </li> |
| <li>Scenario 2b |
| <ol> |
| <li>Compare two local resources using the Compare Editor.</li> |
| <li>Open one of them in the default editor (F3) and edit it.</li> |
| <li>Ensure that the resource gets the dirty state indicator over |
| both editors (i.e default and Compare).</li> |
| <li>If you close the default editor you should be prompted to |
| save changes, exiting without saving or cancel.</li> |
| <li>Select to save changes (button named "Yes").</li> |
| <li>Ensure that the dirty state indicator for the resource goes |
| off.</li> |
| <li>Ensure that changes are saved correctly to the underlying |
| resource.</li> |
| <li>Ensure you can Undo changes.</li> |
| </ol> |
| </li> |
| <li>Scenario 3 |
| <ol> |
| <li>Compare two local resources using the Compare Editor.</li> |
| <li>Open both files in default editors (F3) and edit them.</li> |
| <li>Ensure that the resource gets the dirty state indicator over |
| all editors (i.e two default and Compare).</li> |
| <li>Ensure that changes made in one of editors are correctly |
| handled by others.</li> |
| <li>Ensure that changes are saved correctly to underlying |
| resources.</li> |
| <li>Ensure you can Undo changes.</li> |
| </ol> |
| </li> |
| </ul> |
| |
| <h5>Common Ancestor</h5> |
| <ul> |
| <li>Ensure that a resource acting as a common ancestor is the one |
| selected in the dialog.</li> |
| <li>Ensure you can switch between Two- and Three-way compare when |
| a common ancestor is available.</li> |
| <li>Ensure you can show/hide the Common Ancestor Pane.</li> |
| </ul> |
| |
| |
| <a name="00010.html"/> |
| <h1>Synchronizing</h1> |
| <a name="00048.html"/> |
| |
| <h2>Performing a Synchronize</h2> |
| <p>Since: 3.0<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p>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.</p> |
| |
| <h3>Performing a Synchronize operation</h3> |
| |
| <p>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.</p> |
| |
| <ul> |
| <li><b>Using the global synchronize action (via toolbar or |
| keybinding)</b>: The selection should be obtained from the active view. If |
| no view is active, all projects should be selected.</li> |
| <li><b>Using the Synchronize button in toolbar of the |
| Synchronize view</b>: All projects should be selected.</li> |
| <li><b>Selecting Synchronize from the context menu of |
| resources in the synchronize view</b>: The selection should match what was |
| selected when the menu was selected.</li> |
| <li><b>Selecting Team > Synchronize with Repository from the |
| context menu of any resource based view</b>: The selection should match |
| what was selected when the menu was selected.</li> |
| </ul> |
| |
| <p>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.</p> |
| |
| <h3>Notice a file is out-of-sync in another view (e.g. packages |
| explorer, types) and want to see the changes</h3> |
| |
| <p>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.</p> |
| |
| <h3>From another view would like to browse the outgoing/incoming |
| changes for several resources</h3> |
| |
| <p>Select a folder or group of files and Team > Synchronize will |
| open the sync view and automatically refresh with the remote repository.</p> |
| |
| <h3>In the sync view and would like to refresh to see if there are |
| new changes from the server</h3> |
| |
| <p>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.</p> |
| |
| |
| <a name="00011.html"/> |
| |
| <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> |
| |
| |
| <a name="00049.html"/> |
| |
| <h2>Decorations</h2> |
| <p>Since: M8<br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| There are many standard decorations in the sync view. Most significant |
| are the propagated flags. |
| |
| <h3>Conflicts</h3> |
| |
| <p>Conflicting changes should be propagated to parent resources such |
| that you can easily see, when the tree is collapsed that there are |
| conflicts. When the conflict is resolved, the parent conflict markers |
| should be removed.</p> |
| |
| <h3>Error and Warning problem markers</h3> |
| |
| <p>Error and warning makers are shown on resources and propagated to |
| parent resources such that you can easily see if you are releasing |
| errors or warnings.</p> |
| |
| <h3>Branch changes</h3> |
| |
| <p>Changes to branches, revisions, should be updated automatically |
| in the views decorators. For example, if you branch from the sync view |
| the branch name should appear.</p> |
| |
| |
| <a name="change_sets00001.html"/> |
| |
| <h2>Change Sets Layout</h2> |
| <p>Since: 3.1 M2<br> |
| Last Modified: $Date$</p> |
| |
| <h3>Change Sets for incoming changes</h3> |
| |
| 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. |
| |
| <h4>Enabling/disabling Change Sets</h4> |
| <ol> |
| <li>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.</li> |
| <li>With some nodes expanded and additionally one or more |
| selected, disable Change Sets. The same nodes should remain expanded |
| and selected.</li> |
| <li>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).</li> |
| </ol> |
| |
| You should also confirm that markers and conflicts are properly |
| propagated to parent nodes. |
| |
| <h4>Change Set Modes</h4> |
| <ol> |
| <li>Switch between the various modes and ensure that the displayed |
| nodes are correct. Also ensure that expansion and selection is |
| maintained.</li> |
| <li>Only Incoming and Outgoing mode show change sets.</li> |
| </ol> |
| |
| <h4>Updating</h4> |
| 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. |
| |
| <h3>Outgoing Sets</h3> |
| |
| The following aspects of outgoing change sets should be tested: |
| <ol> |
| <li>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.</li> |
| <li>Files in a change set can be transfered to another change set</li> |
| <li>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.</li> |
| <li>The title and comment of a change set can be changed.</li> |
| <li>Layout and modes changes work properly for outgoing change |
| sets in the Synchronize view.</li> |
| <li>Committing one or more files in a change set will result in a |
| commit dialog that is primed with the comment from the set.</li> |
| <li>change sets (including which is the default), are preserved |
| across restarts.</li> |
| </ol> |
| |
| |
| <a name="sync00001.html"/> |
| |
| <h2>Scenarios</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:38 $</p> |
| |
| <h3>Making Manual Changes</h3> |
| |
| <p>Create a conflicting file change. Manually edit the left source |
| pane in the sync view. Hit "Save" on the popup menu. The file should |
| remain a Conflict. Choose Mark as Merged in the popup menu of the tree. |
| The file should change to an outgoing change. Commit the outgoing |
| change.</p> |
| |
| <h3>Merging Conflicts</h3> |
| |
| <p>Try Override and Update with different combinations of |
| Auto-Mergeable and Non-Mergeable conflicts in the selection. If all |
| conflicts are Non-Mergeable, then the only choice is to replace with |
| remote or cancel. If one or more conflicts are Auto-Mergeable, the |
| choices are (a) Auto-Merge any applicable files, and replace the rest |
| with remote, (b) Replace all files with remote or (c) Cancel.</p> |
| |
| <h3>Removing from View</h3> |
| |
| <p>Choose Remove from View. Selected nodes should disappear. Refresh |
| the view. The nodes should reappear.</p> |
| |
| <h3>Working with Branches</h3> |
| |
| <p>Try any and all of the above, but use a branch instead of HEAD. |
| Behavior should be identical. The sync view decorator should show you |
| the name of the branch.</p> |
| |
| <h3>Using Mixed Tags</h3> |
| |
| <p>Using Team->Branch, Replace With->Branch or Version, and |
| Team->Tag as Version, you can create a project which has different |
| tags mixed into it. For example, one folder may be shared as V2_0, a |
| single file may be attached to the branch NEW_FEATURE_BRANCH, and the |
| root of the project may be attached to HEAD. We need to test usage of |
| these projects in the sync view. For example, if developer 1 has project |
| P shared with HEAD, and folder P/F is shared with branch B, have |
| developer 2 release a change to folder F in HEAD, and have developer 1 |
| perform a sync. In this case developer 1 should not see the incoming |
| change.</p> |
| |
| |
| <a name="syncRestart00001.html"/> |
| |
| <h2>Restart Behavior</h2> |
| <p>Since: 3.3<br> |
| Last Modified: $Date$</p> |
| |
| <h1>Synchronization Restart Behavior</h1> |
| |
| <p>CVS Synchronizations can be configured to populate or synchronize |
| after a restart. To test this, do the following:</p> |
| |
| <ol> |
| <li>Create a CVS synchronization of each persisted type (Workspace |
| and Merge).</li> |
| <li>Restart and see the page that allows you to populate or |
| restart.</li> |
| <li>Choose to remember the operation</li> |
| <li>Pick an operation and ensure that the behavior is respected</li> |
| </ol> |
| |
| You will want to repeat these steps for both operations (Synchronize and |
| Populate) and you should also repeat them using the preference page |
| available from the view menu in the Synchronize view. |
| |
| |
| |
| <a name="commit00001.html"/> |
| <h1>Commit</h1> |
| <a name="commit00002.html"/> |
| |
| <h2>Committing Changes</h2> |
| <p>Since: 3.1 M4<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <h3>Committing changes to existing files</h3> |
| <ol> |
| <li>Edit some existing files in a CVS project</li> |
| <li>Choose Team>Commit on the project from the Navigator</li> |
| <li>The commit dialog should show a preview of the files that are |
| to be committed and allow a commit comment to be entered.</li> |
| </ol> |
| |
| <p>Some things to try: |
| <ul> |
| <li>Committing a project (or selected resources) that contain no |
| changes will prompt to indicate this.</li> |
| <li>Files can be removed from the preview area and these will be |
| excluded from the commit.</li> |
| <li>Clicking OK without entering a comment should prompt.</li> |
| <li>Emptying the preview area will disable the Finish and show a |
| "no changes" message.</li> |
| <li>Try different page layouts (compressed, tree and flat)</li> |
| </ul> |
| |
| <h3>Committing new files</h3> |
| <ol> |
| <li>Add a few new files to a project including some with unknown |
| extensions and some with no extensions.</li> |
| <li>Choose Team>Commit on the project from the Navigator</li> |
| <li>The first page of the commit wizard will allow you to |
| configure the file types for any new files whose content type cannot be |
| determined.</li> |
| <ul> |
| <li>Configure some to be remembered and others to be only applied |
| to this commit (verify after that this was done properly)</li> |
| </ul> |
| <li>Click Next and verify that the content type was determined |
| properly.</li> |
| <li>Choose to ignore one of the files and verify that the file is |
| removed and the .cvsignore appears.</li> |
| </ol> |
| |
| <h3>Committing files contained in a Change Set</h3> |
| <ol> |
| <li>From the Synchronize view, select all the changes from the |
| same Change Set.</li> |
| <li>Choose Commit and verify that the comment in the commit dialog |
| is the one from the change Set.</li> |
| </ol> |
| |
| |
| <a name="tags00001.html"/> |
| <h1>Tags</h1> |
| <a name="tags00002.html"/> |
| |
| <h2>Tag Selection in Dialogs</h2> |
| <p>Since: 3.1 M4<br> |
| Last Modified: $Date: 2005/02/04 21:58:25 $</p> |
| |
| Tag lists appear in many dialogs: |
| |
| <ul> |
| <li>Replace with Branch or Version</li> |
| <li>Compare with Branch or Version</li> |
| <li>Share of existing project</li> |
| <li>Switch to Another Branch or Versions</li> |
| <li>Tag with Existing</li> |
| <li>Tag as Version</li> |
| </ul> |
| |
| <p>In each of these places, typing in the tag text field will filter |
| the list of shown tags. The option to Refresh and Configure tags should |
| also be present. Refreshing behavior should be as follows:</p> |
| |
| <ol> |
| <li>If an auto-refresh file (.project by default) exists and has |
| tags, the tags are obtained from the file.</li> |
| <li>If there is no auto-refresh file, the log command is used to |
| determine if there are any tags in the files that are direct children |
| of the remote folder.</li> |
| <li>If no tags are found, the user is prompted to either perform a |
| deep log to find any tags or configure the tags manually.</li> |
| </ol> |
| |
| |
| <a name="tags00003.html"/> |
| |
| <h2>Tag Caching</h2> |
| <p>Since: 3.1 M4<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| Discovered tags are cached locally to improve performance. Caching is |
| done in the following ways: |
| |
| <ol> |
| <li>Tags discovered for local resources are cached with the remote |
| folder that the resource's project is mapped to.</li> |
| <li>Tags discovered for remote resources are cached with the |
| resource if it is a folder or the resource's parent if it is a file.</li> |
| </ol> |
| |
| To test this, you can try one or more of the following: |
| |
| <ol> |
| <li>Perform Compare With on folders and subfolders in the |
| repositories view. The first time, you will need to perform a Refresh \ |
| but subsequent times, the tags should be cached.</li> |
| <li>Load non-root folders as projects and ensure tags are cached |
| and obtained properly.</li> |
| <li>Perform Tag with Existing in the History view and ensure that |
| tags are obtained from the file</li> |
| </ol> |
| |
| |
| <a name="00012.html"/> |
| <h1>Branch/Merge</h1> |
| <a name="00022.html"/> |
| |
| <h2>Performing a Merge</h2> |
| <p>Since: 3.1<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <h3>Scenario 1: One Time Merge</h3> |
| |
| <p>Using Team>Merge, merge the changes from a branch into HEAD. Once |
| completed, in the synchronize view, update the incoming changes, resolve |
| any conflicts and ensure they worked, After updating, redo the same |
| merge. A no-changes dialog should be presented since the local contents |
| match the end-point. |
| <p>Things to try: |
| <ul> |
| <li>Use content assist to select an existing branch for the end |
| tag. A root versions should be automatically found if it exists.</li> |
| <li>Choose to perform the merge into the local workspace. Ensure |
| it works with and without a start tag.</li> |
| </ul> |
| |
| <h3>Scenario 2: Ongoing Merge</h3> |
| |
| After performing a one-time merge, pin the entry in the synchronize |
| view. Release changes to the end point (branch) and synchronize the |
| merge. The new changes should appear in the synchronize view. Update to |
| these changes as appropriate. |
| |
| <h3>Scenario 3: Direct Merge</h3> |
| |
| Perform a Team>Merge and choose to merge directly into the workspace. |
| Try both the case with a base tag and without it. |
| |
| <h3>Removing a Merge</h3> |
| |
| <p>Delete the merge from the synchronize view using the remove |
| toolbar button. The merge subscriber should be removed from the view. |
| |
| <a name="00013.html"/> |
| |
| <h2>Synchronize View</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2004/06/01 19:14:48 $</p> |
| <ul> |
| <li>Same scenarios as <a href="00011.html">CVS Synchronize |
| View</a> except you can't commit.</li> |
| <li>Test mark as merged (ensure that it can work on large data |
| sets)</li> |
| </ul> |
| |
| <a name="branch00001.html"/> |
| |
| <h2>Branching</h2> |
| <p>Since: 3.1 M4<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <ol> |
| <li>Choose Team>Branch from the context menu of the Navigator. |
| <li>Enter a branch tag.</li> |
| <li>Verify that a version tag is proposed for the branch.</li> |
| <li>Click OK and verify that the tags are applied and the local |
| project is mapped to the branch.</li> |
| </ol> |
| <p>Some things to try: |
| <ul> |
| <li>Uncheck the "Start working in the branch" option and verify |
| that the local project is not moved to the branch.</li> |
| <li>Branch a loaded version and verify that the tag from the |
| project is used as the root.</li> |
| <li>Ensure that the content assist on the branch text widget shows |
| branches from other projects in the workspace that do not exist on the |
| project being branched.</li> |
| <li>Branch with local changes and ensure that they remain and can |
| be committed to the branch.</li> |
| </ul> |
| |
| |
| <a name="00029.html"/> |
| <h1>Patching</h1> |
| <a name="00030.html"/> |
| <h2>Importing a zip over a shared project</h2> |
| <p>Since: 3.0 M6<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>This scenario captures one means of patching. It assumes that a zip file contains |
| a previous version of a project that has been modified in some way and added to |
| a zip archive (without CVS directories).</p> |
| |
| <p>Perform the following steps:</p> |
| <ol> |
| <li>Load the project from CVS (using Checkout or some other means).</li> |
| <li>Import the zip over the loaded project.</li> |
| <li>Ensure that the sync states are Outgoing for all resources from the zip file.</li> |
| <li>Ensure that all folders from the zip file (except new ones) |
| are marked as in-sync and all files (except new ones) are outgoing changes.</li> |
| <li>Changing the comparison criteria to compare contents should not contact the server |
| and should leave only the resources that differ in the sync view. Perform a |
| Mark As Merged and a Commit on these resources.</li> |
| <li>Changing the comparison criteria back to revision number will |
| reveal all the files whose content did not change, perform a Mark as |
| merged on these resources followed by a Team>Update on the project in |
| the Navigator (Note: This could be handled better).</li> |
| <li>After the update, ensure the project has no out-of-sync resources.</li> |
| </ol> |
| |
| |
| <a name="00014.html"/> |
| <h1>History View</h1> |
| <a name="00018.html"/> |
| |
| <h2>Editor Linking</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2007/05/23 13:19:15 $</p> |
| |
| <ol> |
| <li>Open the Resource History view and enable editor linking.</li> |
| <li>Open a compare editor from the sync view (on a resource that |
| exists remotely) and ensure that the history view updates.</li> |
| <li>Open an editor from the Repositories view and ensure that the |
| history view updates.</li> |
| <li>Open an editor on a local file and ensure that the history |
| view updates.</li> |
| </ol> |
| <p>Repeat the above with the Resource History view hidden and ensure |
| that no revision history is fetched (i.e. no jobs appear in progress |
| view).</p> |
| |
| |
| <a name="toolbarButtonsUMFile00001.html"/> |
| |
| <h2>Common Toolbar Buttons</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2007/09/06 15:23:00 $</p> |
| |
| <p><b>Purpose:</b> Test the functionality of the various buttons |
| common to both the Local File History page and the CVS History page</p> |
| |
| Note: Even though the functionality is the same for both pages, the |
| tests should be conducted on both an unmanaged file and a CVS file as |
| each history page has its own respective implementation for the |
| following actions. |
| |
| <hr></hr> |
| |
| <h3>Compare Mode</h3> |
| |
| <ol> |
| <li>With a file history in the History View and the Compare Mode |
| button <b>off</b>, click on any revision and verify that it opens that |
| revision.</li> |
| <li>Click the Compare Mode button <b>on</b> and verify that |
| clicking on any local file revision will now bring up the compare |
| editor.</li> |
| <li>Verify that turning the Compare Mode button off again switches |
| back to Open mode.</li> |
| </ol> |
| |
| <hr></hr> |
| |
| <h3>Collapse All</h3> |
| |
| <ol> |
| <li>With a file history in the History View, and the Group by Date |
| button <b>on</b>, click the Collapse All button.</li> |
| <li>Verify that all of the items in the tree are collapsed.</li> |
| </ol> |
| |
| |
| <a name="groupByDateUMFile00001.html"/> |
| |
| <h2>Group Revisions by Date</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p><b>Purpose:</b> Test the group by date mechanism for both local |
| history and CVS history.</p> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Roll back your system clock 1 day, make a change to your local |
| unmapped file and save it.</li> |
| <li>Roll back your system clock to the beginning of the month and |
| make some changes to the local unmapped file and save it.</li> |
| <li>Roll back your system clock to anywhere before the beginning |
| of the current month, make a change to the local unmapped file and save |
| it.</li> |
| <li>Reset your clock to the current date and show the file's |
| history (DND or [Team>Show Local History]/[Team>Show History] for local |
| and CVS files respectively).</li> |
| <li>Verify that the revisions appear in the appropriate |
| categories: Today, Yesterday, This Month and Previous.</li> |
| <li>Click the Group by Revisions Date button and make sure that |
| the categories toggle on and off.</li> |
| </ol> |
| |
| <p>The above should be tested with history from both an unmanaged |
| file and a CVS file.</p> |
| |
| |
| <a name="localHistoryUnsharedFiles00001.html"/> |
| <h1>Local History for Unshared Files</h1> |
| <a name="DNDUMFile00001.html"/> |
| |
| <h2>Drag and Drop Unmapped File</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2006/04/25 20:40:39 $</p> |
| |
| <p><b>Purpose:</b> Test the DND mechanism for unmapped files.</p> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Drag the local file over to it.</li> |
| <li>Ensure the the history view shows the appropriate history |
| (i.e. all revisions present and proper filename in the title bar).</li> |
| </ol> |
| |
| <p>Drag another file over to the History View from a project that is |
| <i>shared with a CVS repository.</i> Repeat the above and make sure that |
| the View updates.</p> |
| |
| |
| <a name="showHistoryUMFile00001.html"/> |
| |
| <h2>Show History Unmapped File</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2006/04/25 20:40:39 $</p> |
| |
| <p><b>Purpose:</b> Test the page activation mechanism for unmapped |
| files.</p> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Select the local file, right click and select Team>Show Local |
| History.</li> |
| <li>Ensure the the history view shows the appropriate history |
| (i.e. all revisions present and proper filename in the title bar).</li> |
| </ol> |
| |
| <p>Populate the History View with another file from a project that |
| is <i>shared with a CVS repository.</i> Repeat the above and make sure |
| that the View updates.</p> |
| |
| |
| <a name="cvsHistory00001.html"/> |
| <h1>CVS History</h1> |
| <a name="DNDCFile00001.html"/> |
| |
| <h2>Drag and Drop CVS File</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2006/04/25 20:40:39 $</p> |
| |
| <p><b>Purpose:</b> Test the DND mechanism for CVS files.</p> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Drag the CVS file over to it.</li> |
| <li>Ensure the the history view shows the appropriate history |
| (i.e. all revisions present and proper filename in the title bar).</li> |
| </ol> |
| |
| <p>Drag another file over to the History View from a project that is |
| <b>not</b> shared with a CVS repository. Repeat the above and make sure |
| that the View updates.</p> |
| |
| |
| <a name="00024.html"/> |
| |
| <h2>Annotate</h2> |
| <p>Since: 3.0 M6<br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <h4>Annotate action should be available from</h4> |
| <ul> |
| <li>history view, repo explorer, resource/packages view</li> |
| </ul> |
| |
| <h4>Annotate java files</h4> |
| <ul> |
| <li>should show the java editor</li> |
| <li>you should be able to step through changes in the annotate |
| view and the java editor should stay in sync (e.g. highlight) the |
| changes associated with the selected change in the annotate view.</li> |
| <li>you should also be able to select a line in the java file and |
| the annotate view should select the change that is associated with that |
| line.</li> |
| <li>the history view should show the history for the opened file |
| and highlight the revision of the currently selected change in the |
| annotate view.</li> |
| </ul> |
| |
| <h4>Annotate non-text editor files</h4> |
| <ul> |
| <li>annotate plugin.xml file</li> |
| <li>the default text editor should be shown</li> |
| <li>you should also be able to select a line in the text file and |
| the annotate view should select the change that is associated with that |
| line.</li> |
| <li>the history view should show the history for the opened file |
| and highlight the revision of the currently selected change in the |
| annotate view.</li> |
| </ul> |
| |
| <h4>Annotate binary files</h4> |
| <ul> |
| <li>annotate a file marked as binary</li> |
| <li>the server should report an error that annotations cannot be |
| shown for binary files.</li> |
| </ul> |
| |
| |
| <a name="modeSwitching00001.html"/> |
| |
| <h2>Mode Switching</h2> |
| <p>Since: 3.2 RC2 <br> |
| Last Modified: $Date: 2006/04/25 21:31:43 $</p> |
| |
| <p><b>Purpose:</b> Test the mode switching for the CVS History Page.</p> |
| |
| <h3>Basic Mode Testing</h3> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Open any file that is being managed by CVS.</li> |
| <li>Edit the file and save.</li> |
| <li>Show the history for the file.</li> |
| <li>Click on the Local and Remote Revisions button. Verify that |
| you can see both remote revisions and local revisions.</li> |
| <li>Click on the Local Revisions button. Verify that you can see |
| only local revisions. Note: <i>No background fetching should occur |
| when you switch modes!</i></li> |
| <li>Click on the Remote Revisions button. Verify that you can see |
| only remote revisions. Note: <i>No background fetching should occur |
| when you switch modes!</i></li> |
| </ol> |
| |
| <h3>Mode Persistence Testing</h3> |
| |
| <ol> |
| <li>Open the History view.</li> |
| <li>Show the history for the file.</li> |
| <li>Click on one of the modes, remember it and close the history |
| view.</li> |
| <li>Show the history for a file again and verify that it is in |
| fact the same mode that you had set prior to closing the history view.</li> |
| </ol> |
| |
| |
| <a name="pinHistoryView00001.html"/> |
| |
| <h2>Pin History View</h2> |
| <p>Since: 3.2 RC2<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p><b>Purpose:</b> Test the pinning behavior of the history view.</p> |
| |
| <h3>Simple Pinning</h3> |
| |
| <ol> |
| <li>With a file history in the History View, hit the Pin button.</li> |
| <li>DND a file onto the pinned history view.</li> |
| <li>Verify that a new history view instance opens with the history |
| of the new file displayed.</li> |
| <li>Drag another file onto the pinned instance and verify that it |
| too goes to the new unpinned view.</li> |
| </ol> |
| <p>Repeat the above using both a CVS file and an unmanaged file.</p> |
| |
| <h3>More Pinning</h3> |
| <p>If a one of the views already contains a file, that file should |
| always update the pinned view.</p> |
| |
| <ol> |
| <li>With a file history in the History View, hit the Pin button.</li> |
| <li>DND a file onto the pinned history view.</li> |
| <li>Verify that a new history view instance opens with the history |
| of the new file displayed.</li> |
| <li>Now show the history for the original file in the pinned view. |
| The pin view should come to the fore front.</li> |
| </ol> |
| |
| |
| <a name="refreshHistory00002.html"/> |
| |
| <h2>Refresh</h2> |
| <p>Since: 3.2 RC2<br> |
| Last Modified: $Date: 2007/05/18 13:54:38 $</p> |
| |
| <p><b>Purpose:</b> Test the two types of refresh behavior available |
| in the history view</p> |
| |
| <h3>Automatic Refresh</h3> |
| |
| <p>When a local file is modified and saved, a refresh event is sent |
| out and the history view should show the newest revision. This will work |
| for both local history and CVS history files. (CVS files need to have |
| the history view in the appropriate viewing mode: either "Remote and |
| Local Revisions" or "Local Revisions".)</p> |
| |
| <ol> |
| <li>With a file history in the History View, and the viewer in an |
| appropriate mode if a CVS file, open an editor on the workspace copy of |
| the file in the history view.</li> |
| <li>Edit the file and save.</li> |
| <li>Verify that a new local revision gets added to the history |
| view which reflects your change.</li> |
| </ol> |
| |
| |
| <h3>Manual Refresh</h3> |
| |
| <p>There is also a Refresh button on the toolbar. This is mainly |
| useful for CVS file histories if you want to check if any revisions have |
| been committed. Note that its not really of any use for local revisions |
| as they are updated automatically.</p> |
| |
| <ol> |
| <li>With a CVS file history in the History View, make a change to |
| the file and save. (You should see the local version updated in the |
| history view.)</li> |
| <li>Commit the file.</li> |
| <li>Hit the Refresh toolbar button and verify that the new |
| revision gets displayed in the history view,</li> |
| </ol> |
| |
| |
| <a name="00020.html"/> |
| <h1>Concurrency</h1> |
| <a name="00021.html"/> |
| |
| <h2>Close and disconnect</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <h4>Background refresh and disconnect</h4> |
| <ol> |
| <li>Load several projects from the repository</li> |
| <li>Ensure that several have outgoing and incoming changes</li> |
| <li>Choose one project to disconnect. The project should have |
| incoming and outgoing changes and be one of the later ones in the |
| refresh order (alphabetical).</li> |
| <li>Perform a refresh on all the projects</li> |
| <li>While the refresh is occurring, disconnect the project chosen |
| in step 3) and leave CVS folders.</li> |
| <li>Ensure that the project is removed from the sync view and no |
| errors occur</li> |
| </ol> |
| <p>Repeat the steps and purge the CVS meta-data in step 5).</p> |
| <p>Repeat the above steps but change the operation in step 5) to the |
| following:</p> |
| <ul> |
| <li>close project</li> |
| <li>project where server is unreachable</li> |
| <li>delete project</li> |
| <li>binary project import over source project with outgoing |
| changes</li> |
| </ul> |
| <h4>Decoration and disconnect</h4> |
| <ul> |
| <li>Load several projects from the repository</li> |
| <li>Ensure that several have outgoing and incoming changes</li> |
| <li>Choose one project to disconnect. The project should have |
| incoming and outgoing changes and be one of the later ones in the |
| refresh order (alphabetical).</li> |
| <li>Turn on CVS decorators</li> |
| <li>As the decorations are being calculated, disconnect all |
| projects from CVS control.</li> |
| <li>Ensure that the project is removed from the sync view and no |
| errors occur</li> |
| </ul> |
| <p>Repeat the above steps but change the operation in step 5) to the |
| following:</p> |
| <ul> |
| <li>close project</li> |
| <li>project where server is unreachable</li> |
| <li>delete project</li> |
| <li>binary project import over source project with outgoing |
| changes</li> |
| <li>delete or move files and folders (to test move/delete hook)</li> |
| </ul> |
| |
| |
| <a name="00023.html"/> |
| <h1>Restarting Workbench</h1> |
| <a name="00019.html"/> |
| |
| <h2>Crash Recovery</h2> |
| <p>Since: 3.0 M5<br> |
| Last Modified: $Date: 2007/05/23 13:19:15 $</p> |
| |
| <h3>Scenario 1</h3> |
| <ol> |
| <li>Turn on deep dirty decoration</li> |
| <li>Dirty a file and ensure that the file and it's parents are |
| dirty</li> |
| <li>Quit Eclipse so dirty state is persisted</li> |
| <li>Restart and perform an override and update or commit and |
| ensure file and parents are clean</li> |
| <li>Kill Eclipse</li> |
| <li>Restart and ensure parents and file are clean</li> |
| </ol> |
| |
| <h3>Scenario 2</h3> |
| <ol> |
| <li>Check out two copies of the same project</li> |
| <li>Dirty the same file in both projects, commit one and refresh |
| the other in the sync view so a conflict is visible</li> |
| <li>Quit Eclipse so that the sync state is persisted</li> |
| <li>Restart Eclipse and perform an Override and Commit on the |
| conflict</li> |
| <li>Kill Eclipse</li> |
| <li>Restart Eclipse and ensure that the sync view doesn't show the |
| file (i.e the file is in-sync).</li> |
| </ol> |
| |
| |
| <a name="00025.html"/> |
| |
| <h2>Synchronize View Settings</h2> |
| <p>Since: 3.0 M6<br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <h4>Saved between sessions</h4> |
| <p>The following GUI preferences in the Synchronize View are |
| persisted between workbench sessions. Also they are persisted for each |
| participant. You should be able to create a merge and workspace |
| participant, then change the settings on each. Restart Eclipse and the |
| settings should be maintained for each participant. The persisted |
| settings are:</p> |
| <ul> |
| <li>mode</li> |
| <li>layout</li> |
| <li>working set</li> |
| </ul> |
| |
| <a name="00028a.html"/> |
| <h1>SSH2</h1> |
| <a name="00029a.html"/> |
| |
| <h2>Server version compatibiliity</h2> |
| <p>Since: M6<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| This test is to ensure that the ssh2 connection method properly |
| delegates to ssh1 when the server only supports ssh1. |
| |
| <a name="00030a.html"/> |
| |
| <h2>Proxies</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| Using HTTP and SOCKS5 proxies. |
| |
| <a name="00031.html"/> |
| |
| <h2>Key Generation</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| You should be able to generate private/public keys in the SSH2 |
| preference page. Here are some scenarios for testing: |
| <ul> |
| <li>Generate keys and save private key without password. You |
| should be prompted.</li> |
| <li>Generate keys and save private key with password. You |
| shouldn't be prompted.</li> |
| <li>Generate keys and install using the sftp button.</li> |
| </ul> |
| |
| <a name="00032.html"/> |
| |
| <h2>General use</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| This tests the prompting and usage of the SSH2 connection method: |
| <ul> |
| <li>Delete all files in your SSH_HOME directory. You can find this |
| directory by opening the SSH2 preference page</li> |
| <li>Create a CVS repository connection of type 'extssh'. You will |
| be prompting about the server id not being in your known_hosts file.</li> |
| <li>Select cancel, and error should be shown indicating that the |
| location was not validated do you want to keep it.</li> |
| </ul> |
| |
| <a name="00033.html"/> |
| <h1>Annotate</h1> |
| <a name="00034.html"/> |
| |
| <h2>Show Annotation Action</h2> |
| <p>Since: 3.0 M3<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| <p>Annotate a non-managed file, binary file, plugin.xml file... Be |
| creative.</p> |
| <p>Ensure that the annotate view, editor, and history view stay |
| synchronized.</p> |
| |
| <a name="00035.html"/> |
| <h1>Label Decorations</h1> |
| <a name="00036.html"/> |
| |
| <h2>Enablement at startup</h2> |
| <p>Since: 3.0 M7<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>The CVS decorators should not be enabled at start-up. Verify the |
| label decorator preference page.</p> |
| Here are some scenarios for testing: |
| <ul> |
| <li>When sharing or checking out a project, the decorators will be |
| enabled automatically.</li> |
| <li>Disabling after they have been enabled and restarting. The |
| decorators should be disabled. Checkout should not enable them again.</li> |
| <li>Enable the decorations again, then disconnecting a project |
| should clear the decorators on the project.</li> |
| </ul> |
| |
| <a name="00037.html"/> |
| |
| <h2>Customizations</h2> |
| <p>Since: 3.1 <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>You can customize the label decorations via the preference page. |
| The customizations will take effect when apply is pressed. Resetting the |
| defaults should work.</p> |
| <p>You can also configure the font and color used for various |
| resources states. There should be a link from the CVS label decorations |
| preference page to the general colors and fonts preference page.</p> |
| |
| <a name="00038.html"/> |
| |
| <h2>Decorations in the Synchronize pages</h2> |
| <p>Since: 3.0 M8<br> |
| Last Modified: $Date: 2007/05/23 13:19:15 $</p> |
| |
| <p>CVS text label decorations should be visible in the CVS |
| synchronize participants. We don't bother to show the images because the |
| sync view already shows the state images. The labels should also update |
| if the 'show change in label' preference is changed.</p> |
| <p>Also, in the CVS synchronize view the revisions shown are the |
| <local> - <remote>. So ensure that the correct remote is |
| shown.</p> |
| <p>Ensure that when the local tag changes the decorators in the sync |
| view and navigator get updated.</p> |
| <p>Ensure that there is no flicker in packages view when CVS |
| decorator updated on commit, update.</p> |
| |
| <a name="watch_edit00001.html"/> |
| <h1>Watch/Edit</h1> |
| <a name="watch_edit_basic00001.html"/> |
| |
| <h2>Basic scenarios</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p>To setup, goto the CVS preference page and enable watch edit for |
| all projects checked out from CVS. And then set the prompt option to |
| always prompt.</p> |
| <ol> |
| <li>Check out a project from CVS and verify that the files are |
| marked as read-only.</li> |
| <li>Open a file and edit it. You should be prompted to edit it. |
| Say yes. There should be a brief pause, then you can edit the file.</li> |
| <li>Open another file and start editing it. You should be prompted |
| to edit it. Say no. The file will remain read-only and you won't be |
| allowed to edit it.</li> |
| <li>Open a file and edit it. Say yes to the prompt. commit the |
| file and edit again. You should be prompted a second time.</li> |
| <li>Open a file and edit it. Say yes to the prompt. Replace the |
| file from the repository and edit again. You should be prompted to edit |
| again.</li> |
| <li>Open a file and edit it. Un-plug your network connection. Say |
| yes to the prompt to send a notification. There should be a pause, then |
| the file should be editable.</li> |
| <li>Checkout another copy of the project. Edit a file, then try to |
| edit the same file in the another project copy. You should be notified |
| that the file is currently being edited by someone else.</li> |
| </ol> |
| |
| <p>Saving files - setup is the same as previous</p> |
| <ol> |
| <li>Check out a project from CVS and verify that the files are |
| marked as read-only.</li> |
| <li>Open a file and edit it. You should be prompted to edit it. |
| Say yes. There should be a brief pause, then you can edit the file.</li> |
| <li>Edit the file but don't save it.</li> |
| <li>Edit the file in a system editor outside of Eclipse, then in |
| the resource navigator, commit the file. The resource's decorator will |
| change. Ignore all the prompts about saving the un-saved file.</li> |
| <li>Return to the unsaved editor and try typing. You should be |
| prompted to call validate edit again.</li> |
| </ol> |
| |
| <p>validateEdit fails</p> |
| <ol> |
| <li>Check out a project from CVS and verify that the files are |
| marked as read-only.</li> |
| <li>Disconnect from network so that the validateEdit would fail.</li> |
| <li>Open a file and edit it. You should be prompted to edit it. |
| Say yes. There should be a pause then the error should be reported in |
| the editor pane showing the exception that occurred.</li> |
| </ol> |
| |
| <p>Refactoring</p> |
| <ol> |
| <li>Check out a project from CVS and verify that the files are |
| marked as read-only.</li> |
| </ol> |
| |
| |
| <a name="watch_edit_editorsview00001.html"/> |
| |
| <h2>Editors View</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 20:28:37 $</p> |
| <p>Test that you can properly show the editors on a file.</p> |
| |
| <a name="perf00001.html"/> |
| <h1>Performance</h1> |
| <a name="perf00002.html"/> |
| |
| <h2>Timings</h2> |
| <p>Since: 3.0<br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| This section contains various timing results and comparisons. |
| |
| <h3>Overview</h3> |
| |
| The purpose of this section is to provide a small set of tests that can |
| be used to benchmark the Eclipse CVS client. The areas tested are: |
| |
| <ol> |
| <li>Checkout</li> |
| <li>Synchronizing</li> |
| <li>Updating</li> |
| </ol> |
| |
| <h3>Setup</h3> |
| |
| The following should be considered when obtaining timings: |
| |
| <ul> |
| <li>The Progress view in verbose mode can add 20% or more to |
| times. In regular mode, it can still add a bit to the time. For these |
| timings, the view was open but hidden.</li> |
| <li>The Console view can add as much as 20% to times. For these |
| tests, the console was turned off entirely.</li> |
| <li>Running an Eclipse operation several times will "warm-up" the |
| code path due to JIT. The timings for Eclipse were usually the second |
| or third timing obtained.</li> |
| </ul> |
| |
| The following numbers were obtained on a 2.8GHz PC running GTK, Sun 14.2 |
| with autobuild off and operations run in the foreground. The project |
| used was org.eclipse.jdt.tests.refactoring. It has a large number of |
| folders and files which give interesting times. The date the timings |
| were obtained were May 31st, 2004 so similar numbers can be obtained for |
| comparison using the project snapshot at that time (which can be |
| obtained using a Date tag). |
| |
| <h3>Checkout</h3> |
| |
| Checkout of org.eclipse.jdt.tests.refactoring as of 2004/05/31. The |
| timings are in "mm:ss" and were obtained by observation (i.e. |
| stopwatch). |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 3:00 to 3:30 (several timings) |
| <ul> |
| <li>Timings increased slightly with progress view visible and |
| considerably with progress view in verbose mode. |
| </ul> |
| </li> |
| <li>CLI over pserver: 3:00 (1 timing)</li> |
| </ul> |
| |
| <h3>Synchronize</h3> |
| |
| Synchronizing of org.eclipse.jdt.tests.refactoring as of 2004/05/31. The |
| timings are in "mm:ss" and were obtained by observation (i.e. |
| stopwatch). |
| |
| <h4>Synchronize with no changes</h4> |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 0:45</li> |
| <li>CLI over pserver: 0:42 ("cvs -n update")</li> |
| </ul> |
| |
| <h4>Synchronize with all outgoing, no incoming</h4> |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 1:00</li> |
| <li>CLI over pserver: 2:20 ("cvs -n update")</li> |
| </ul> |
| |
| <h4>Synchronize with incoming changes</h4> |
| |
| Incoming changes were simulated by loading version v20040106 and then |
| removing the tag (using a special utility action). This resulted in 393 |
| incoming changes. |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 0:55</li> |
| <li>CLI over pserver: 0:45 ("cvs -n update")</li> |
| </ul> |
| |
| The timing for Eclipse also includes the status command to fetch the |
| revisions for the 393 incoming changes. |
| |
| <h3>Update</h3> |
| |
| These timings were obtained using Team>Update for Eclipse and "cvs |
| update ." for the CLI. |
| |
| <h4>Update with no changes</h4> |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 1:15, 1:25 (2 timings)</li> |
| <li>CLI over pserver: 1:15 ("cvs update")</li> |
| </ul> |
| |
| <h4>Update with all false outgoing changes (using touch)</h4> |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 2:20</li> |
| <li>CLI over pserver: 2:20</li> |
| </ul> |
| |
| <h4>Update with incoming changes</h4> |
| |
| Incoming changes were simulated by loading version v20040106 and then |
| removing the tag (using a special utility action). This resulted in 393 |
| incoming changes. |
| |
| <ul> |
| <li>Eclipse 3.0 over pserver: 1:55</li> |
| <li>CLI over pserver: 1:55 ("cvs -n update")</li> |
| </ul> |
| |
| |
| <a name="perf00004.html"/> |
| |
| <h2>Resource Data Structures</h2> |
| <p>Since: 3.0<br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| This section contains results on memory footprint of CVS in the Core |
| resource plugin data structures. More specifically, CVS uses the session |
| and persistent property caches along with the synchronizer. |
| |
| <h3>CVS Workspace Sync info caches</h3> |
| |
| Checking of the cache usage requires the use of the Core spy tools. To |
| obtain the memory footprint, perform the following steps. |
| |
| <ol> |
| <li>Install the Core Spy Tools</li> |
| <li>Launch Eclipse</li> |
| <li>Checkout several projects</li> |
| <li>Open the Element Tree Spy to get the memory footprint. At the |
| time of writing, CVS is the main user of these structures. In future |
| test, ensure that others are not contributing to the tally.</li> |
| <li>Disconnect all the projects</li> |
| <li>The Element Tree Spy memory footprint should be reduced |
| accordingly</li> |
| </ol> |
| |
| The following snapshot of the resource element tree was taken after |
| checking out all of the projects (294 as of 2004/05/31) in |
| dev.eclipse.org. |
| |
| <pre> |
| Total resource count: 89,466 |
| Team private: 10,186 |
| Phantom: 4,055 |
| Markers: 0 |
| SyncInfo: 10,432 |
| Number of layers: 15 |
| Number of nodes: 89,514 |
| Number of non-identical strings: 48,456 |
| Total memory used by nodes: 23,141,343 |
| Nodes and ResourceInfo: 8,586,108 |
| Strings: 3,584,724 |
| Markers: 0 |
| Sync info: 1,447,861 |
| Session properties: 9,522,650 |
| class [B: 2,618,076 |
| class [Ljava.lang.Object;: 2,564,448 |
| class org.eclipse.core.internal.utils.ObjectMap: 1,700,240 |
| class [C: 1,454,994 |
| class java.lang.Long: 610,800 |
| class java.lang.String: 286,580 |
| class org.eclipse.team.internal.ccvs.core.syncinfo.FolderSyncInfo: 285,292 |
| class java.util.ArrayList: 768 |
| class org.eclipse.team.internal.ccvs.core.util.StringMatcher: 660 |
| class org.eclipse.team.internal.ccvs.core.util.FileNameMatcher: 320 |
| class [Ljava.lang.String;: 300 |
| class org.eclipse.core.runtime.QualifiedName: 160 |
| class java.lang.Object: 12 |
| The top 20 equal but non-identical strings are: |
| A.java->2,002 |
| in->1,219 |
| plugin.xml->913 |
| out->794 |
| A_out.java->489 |
| A_in.java->487 |
| eclipse->431 |
| org->421 |
| Test.java->412 |
| B.java->345 |
| build.properties->297 |
| I.java->269 |
| internal->256 |
| about.html->253 |
| plugin.properties->243 |
| .cvsignore->227 |
| .classpath->209 |
| ui->185 |
| src->184 |
| package.html->165 |
| </pre> |
| |
| <h3>CVS Merge memory usage</h3> |
| Merging in CVS makes use of the Core synchronizer. Perform the following |
| steps with the Core Spy Tool installed to ensure proper memory |
| management. |
| |
| <ol> |
| <li>Checkout one or more projects</li> |
| <li>Open the Element Tree Spy to get the memory footprint.</li> |
| <li>Perform a merge</li> |
| <li>Open the Element Tree Spy to get the memory footprint. The |
| only increase should be in the synchronizer.</li> |
| <li>Remove the merge from the sync view</li> |
| <li>The Element Tree Spy memory footprint should be reduced |
| accordingly</li> |
| </ol> |
| |
| |
| <a name="perf00005.html"/> |
| |
| <h2>Looking For Leaks</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 15:23:56 $</p> |
| |
| <h3>Removing synchronize view entries</h3> |
| |
| <ol> |
| <li>Start with an empty synchronize view</li> |
| <li>Create an entry in the Synchronize view for each of the |
| following cases: |
| <ul> |
| <li>Team>Synchronize</li> |
| <li>Compare with>Branch or Version</li> |
| <li>Team>Merge</li> |
| </ul> |
| </li> |
| <li>Open the context menu</li> |
| <li>Select all mode and layout combinations</li> |
| <li>Remove the entry (making the sync view empty).</li> |
| <li>Select an item in another view</li> |
| <li>Using a memory profiler, look for instances of the following |
| classes: |
| <ul> |
| <li>ISynchronizeParticipant |
| <li>SynchronizeModelElement |
| <li>SyncInfo/SyncInfoSet |
| </ul> |
| </li> |
| </ol> |
| |
| <h3>Closing the Synchronize view</h3> |
| |
| Close all instances of the Synchronize view and ensure that no instances |
| of ISynchronizeView remain. |
| |
| |
| <a name="perf00006.html"/> |
| |
| <h2>Team Data Structures</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| The Team component provides several data structures that can be used to |
| cache resource synchronization state and resource variants for improved |
| performance. The plan is to provide tools to interrogate these caches in |
| the 3.1 timeframe. These caches include: |
| |
| <ul> |
| <li>Resource Variant cache</li> |
| <li>SubsciberParticipant/SyncInfoSet</li> |
| </ul> |
| |
| <h3>CVS Specific data structures</h3> |
| |
| CVS uses several caches to improve performance. Tools should be provided |
| to query the size of these caches as well. |
| |
| <ul> |
| <li>Console (caches contents while not visible)</li> |
| <li>Resource History View log entry cache</li> |
| <li>Commit Sets log entry cache</li> |
| </ul> |
| |
| |
| <a name="perf00007.html"/> |
| |
| <h2>Scalability</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>The following scenario can be used to test a large number of |
| incoming additions:</p> |
| |
| <ol> |
| <li>Load org.eclipse.jdt.core.tests.model from dev.eclipse.org</li> |
| <li>Disconnect Formatter folder and delete it</li> |
| <li>Synchronize and the contents show up as incoming additions</li> |
| <li>Perform an Update in the project in the sync view.</li> |
| </ol> |
| |
| |
| <a name="failures00001.html"/> |
| <h1>Failure Cases</h1> |
| <a name="connections00001.html"/> |
| |
| <h2>Connections</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/23 13:19:14 $</p> |
| |
| <p>Test that authentication, connection errors result in appropriate |
| error messages and that these don't pollute the log file or console. To |
| setup for these tests ensure there are a couple of shared projects in |
| your workspace.</p> |
| |
| <ul> |
| <li>Clear you log file before starting the tests and turn on the |
| CVS quick diff provider.</li> |
| <li>Perform an update, a synchronize, and open a file. The log |
| should be empty and the operations should succeed.</li> |
| <li>Disconnect from the network.</li> |
| <li>Open a file. The CVS quick diff will fail and an error should |
| be in the log.</li> |
| <li>Synchronize all the shared projects. One error explaining the |
| failures should be returned.</li> |
| <li>Change the connection properties of one of the projects to |
| point to an non-existing location. Then synchronize again, the error |
| message should indicate that some succeeded and others failed. But the |
| user should no that the operation did complete and skipped the failed |
| projects.</li> |
| <li>Expand the invalid location in the CVS repositories view. An |
| appropriate error should be shown.</li> |
| </ul> |
| |
| |
| <a name="auth_problems00001.html"/> |
| |
| <h2>Authentication Problems</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2004/06/01 20:28:37 $</p> |
| |
| <p>Test the error reporting when authentication fails due to either, |
| invalid username, password, hostname. This should be tried with each CVS |
| connection method: pserver, extssh, ext.</p> |
| |
| |
| <a name="misc00001.html"/> |
| <h1>Misc</h1> |
| <a name="00042.html"/> |
| |
| <h2>CVS Console</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| There are a couple of preferences that controls the behavior and |
| presentation of the console. To enable this testing, you must first |
| enable font and label decorations. This can be done by going to |
| <i>Window/Preferences/Team/CVS/Label Decorations</i> |
| and checking off |
| <b>"Enable font and color decorations"</b> |
| . |
| <p>These are:</p> |
| <ul> |
| <li>font: changing the font should immediately update the sync |
| view as well as all other views decorated by CVS (ie. Package |
| Explorer).</li> |
| <li>font color: message color, error color, command line. Changing |
| these should immediately update the console view.</li> |
| </ul> |
| |
| |
| <a name="keys00001.html"/> |
| |
| <h2>Key Bindings</h2> |
| <p>Since: 3.1<br> |
| Last Modified: $Date$</p> |
| |
| <p>Activate the CVS menu and assign keybindings to the various CVS |
| commands. Ensure that they work as expected.</p> |
| |
| |
| <a name="validate_edit00001.html"/> |
| <h1>Validate Edit</h1> |
| <a name="validate_edit_editing_files00001.html"/> |
| |
| <h2>Editing Files</h2> |
| <p>Since: <br> |
| Last Modified: $Date: 2007/05/18 13:54:37 $</p> |
| |
| <p>These tests are to sanity check editors behavior relating to |
| calling validateEdit. The tests will try to cover all cases where files |
| are changed by the validateEdit handler and changes are made to the |
| read-only bit.</p> |
| |
| <p>These test cases outline the expected behavior of single file |
| editors in terms of calling validateEdit and handling of error |
| conditions. All scenarios assume that a repository provider is mapped to |
| a project and has created a sandbox with files that are marked |
| read-only.</p> |
| |
| <p>The <a |
| href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.team.examples.filesystem/"> |
| org.eclipse.team.example.filesystem</a> plugin is a repository provider that |
| simulates a pessimistic workflow. You can use it to run these tests and |
| validate (no pun intended) your validateEdit editor support. To use the |
| pessimistic provider, share a project with the repository provider |
| called "File System Pessimistic Example" and then you can add to control |
| the files and checkin/checkout will toggle the read-only bit and touch |
| the file. You can change the behavior of the validateEdit call via the |
| pessimistic preference page. For example, you can force the operation to |
| fail and update contents of the file when checked out.</p> |
| |
| <p>These tests should be run against the following combinations of |
| tools:</p> |
| |
| <ul> |
| <li>Different repository providers</li> |
| <li>Single file editors (java, text)</li> |
| <li>Multiple file editors (manifest editor, ...)</li> |
| </ul> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S1: Repository provider enabled and files are readable</h3> |
| <ol> |
| <li>Open a file that is not marked read-only in a project |
| configured with a repository provider.</li> |
| <li>Start editing the file, validate edit should not be called.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S2: Validate edit called on first edit</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK, the users edit is accepted and shows |
| up in the editor, and the file can be edited normally.</li> |
| <li>The user saves the file, and then can continue editing without |
| validateEdit being called.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S2b: Validate edit canceled</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit is canceled, the users edit is not accepted and |
| the file cannot be edited.</li> |
| <li>The user should still be able to browse the contents of the |
| file and trying to edit it again</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S2b: Validate edit fails with an error</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit is canceled, the users edit is not accepted and |
| the file cannot be edited. User should be shown the error returned from |
| the validateEdit provider.</li> |
| <li>The user should still be able to browse the contents of the |
| file and trying to edit it again</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S3: Validate edit called on subsequent edits if file changes |
| state</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK, the user's edit is accepted and the |
| file can be edited normally.</li> |
| <li>The user saves the file, and then can continue editing without |
| validateEdit being called.</li> |
| <li>The user saves the file and then checks in the file while the |
| editor is still open.</li> |
| <li>After the checkin completes the user continues editing the |
| file.</li> |
| <li>Validate edit should be called again.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S4: Validate edit not called after contents changed</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK, the user's edit is accepted and the |
| file can be edited normally.</li> |
| <li>The user saves the file, and then can continue editing without |
| validateEdit being called.</li> |
| <li>The user saves the file and keeps the editor opened.</li> |
| <li>The user then un-checks out the file and new file contents are |
| retrieved from the server.</li> |
| <li>The new file contents are loaded into the editor and |
| validateEdit is not called.</li> |
| <li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S5: Validate edit changes file contents editor not-dirty</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK and brings in new content from the |
| server.</li> |
| <li>The new content is loaded automatically because the editor |
| isn't dirty yet.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S6: Validate edit changes file contents editor dirty</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK and the file on disk doesn't change.</li> |
| <li>The user continues editing the file and then checks it in.</li> |
| <li>The editor remains open and dirty, the user continues editing.</li> |
| |
| <li>validateEdit is called because the file is now read-only and |
| returns OK and brings in new content from the server.</li> |
| <li>The editor detects the timestamp change and prompts about the |
| conflict and provides <a href="#reload_options">options</a> to the |
| user.</li> |
| <li>After the user selects his option and the user continues |
| editing, the editor will call validateEdit.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S7: Read-only editors refreshing on checkout</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Checkout the file that brings in new content from the server.</li> |
| <li>The editor should update with the new content from the server.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S8: validate called on editor save</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK and the file on disk doesn't change.</li> |
| <li>The editor remains open and dirty, the user continues editing.</li> |
| <li>The user checks-n the file and then closes the editor.</li> |
| <li>The user is prompted to save the file, then validate edit is |
| called, and the file is checked-out then saved.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S9: validate called on editor save with new contents</h3> |
| <ol> |
| <li>Open a file that has been checked out as read-only from a |
| repository provider.</li> |
| <li>Start editing the file, validateEdit should be called.</li> |
| <li>validateEdit returns OK and the file on disk doesn't change.</li> |
| <li>The editor remains open and dirty, the user continues editing.</li> |
| <li>The user checks-n the file and then closes the editor.</li> |
| <li>The user is prompted to save the file, then validate edit is |
| called, and the file is checked-out then saved.</li> |
| </ol> |
| |
| <!-- |
| <hr> |
| |
| <a name="reload_options"><h3>Conflict Resolution Options for Editors</h3> |
| <pre> |
| Assumptions: |
| 1. Editors currently maintain a "dirty bit" indicating that the in-memory |
| buffer has been modified and not yet written to disk. Editors call |
| validateEdit() the if the file is read-only and the dirty bit is going |
| from the clean state to the dirty state. |
| 2. Editors can detect when the timestamp of the file has changed on disk |
| and prompt the user for the appropriate action. |
| |
| Suggestion: |
| Editors should maintain a separate bit, "must call validateEdit()". Any |
| modification of the buffer calls validateEdit() first if this bit is set. |
| It is initially set when the file is opened if the file is read-only. It |
| is cleared after a successful call to validateEdit(). It is set again |
| when the editor notices that a file has gone from read/write to read-only. |
| |
| If the "must call validateEdit()" bit ever goes from the cleared state to |
| the set state (except for when the file is initially opened), a later |
| successful call to validateEdit(), should should result in the following |
| actions: |
| |
| +-----------+------------------+----------------------------------------+ |
| | Dirty Bit | Timestamp Change | Editor Action | |
| | State | Detected | | |
| +-----------+------------------+----------------------------------------+ |
| | 0 | no | No action required | |
| +-----------+------------------+----------------------------------------+ |
| | 1 | no | No action required | |
| +-----------+------------------+----------------------------------------+ |
| | 0 | yes | Prompt user for reload/no-reload/merge | |
| +-----------+------------------+----------------------------------------+ |
| | 1 | yes | Prompt user for reload/no-reload/merge | |
| +-----------+------------------+----------------------------------------+ |
| </pre> |
| --> |
| |
| |
| <a name="validate_edit_refactoring00001.html"/> |
| |
| |
| <p>These tests are a sanity check that workbench, JDT and other |
| tools refactorings behave properly with respect to validate Edit. For a |
| repository providers that supports a pessimistic workflow, the following |
| scenarios should result in the invocation of the validate edit callback |
| and should include a UI context which allows prompting. |
| <p>The following scenarios are stated in terms of the Navigator view |
| and JDT. Other tools should translate them to a set of scenarios that |
| make sense for the tool.</p> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S1: Search and Replace</h3> |
| <ol> |
| <li>Select one or more projects or folders and choose Search/File.</li> |
| <li>Enter a string known to exist in multiple files and click |
| Replace</li> |
| <li>Enter a new string that differs from the one searched for.</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S2: Single file content modification</h3> |
| <ol> |
| <li>Open a Java file that is read-only</li> |
| <li>Perform any of the Java Source operations (e.g. toggle |
| comment)</li> |
| <li>Ensure that validate edit is invoked</li> |
| </ol> |
| |
| <!-- ------------------------------------------------------------------------------ --> |
| |
| <h3>S3: Multiple file content modification</h3> |
| <ol> |
| <li>Ensure all files in your workspace are read-only</li> |
| <li>Perform a Java/Refactoring such as a method or class rename.</li> |
| <li>Ensure that validate edit is invoked at most once per project |
| involved.</li> |
| </ol> |
| |
| |
| <a name="logical00001.html"/> |
| <h1>Logical Resource Support</h1> |
| <a name="logical00002.html"/> |
| |
| <h2>Java Packages</h2> |
| <p>Since: 3.1<br> |
| Last Modified: $Date$</p> |
| |
| <p>Ensure that CVS operations such as Update and Commit are |
| performed only on the files in a Java package and not on the subpackages |
| when the operations are launched from the Java Packages Explorer.</p> |
| |
| |
| <a name="logical00003.html"/> |
| |
| <h2>Working Sets</h2> |
| <p>Since: 3.1<br> |
| Last Modified: $Date$</p> |
| |
| <p>Configure the Java Packages Explorer to show Working Sets. |
| Populate the working sets with various combinations of shared and |
| unshared projects and ensure that CVS operations can be performed |
| directly on the working sets if they contain at least one shared |
| project.</p> |
| |
| |
| </body></html> |