cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

CVS Commit UI Specification Example

Author: Jan Rojcek

$Revision: 1.11 $
$Date: 2005/03/24 15:01:51 $

Note: This is not a complete specification. This is an example of using UI Spec Template.

Use Cases and Scenarios

Commit Project Changes

The user modified multiple project source files and created few other sources and needs to put them into VCS repository so that the changes are made available to other colleagues. Before he actually puts the sources into the repository, he needs to check whether the changes he made are compatible with the changes his colleagues have made in the repository since he updated the sources last time. He also needs to clean up the sources (comments, formatting, etc.).

The scenario:

  • User selects projects containing modified files he/she wants to commit.
  • Invokes main menu item CVS | Show <name> Changes . A Versioning Window opens showing the difference between the projects in the repository and local project copy.
  • Clicks a Diff toolbar button in the Versioning Window and a Diff Window opens showing the difference between local and repository files.
  • Uses Next Difference and Previous Difference toolbar buttons in the Diff window to navigate between the differences.
  • Clicks Update toolbar button in the Versioning window, which gets the remote changes from the repository.
  • Invokes Clean and Build for sanity checking the build.
  • Clicks Commit toolbar button in the Versioning window which opens a Commit Dialog.
  • In the Commit dialog, the user specifies the commit message and clicks the commit button.

Specification

Menu

| CVS |
-------
Show All Changes
Diff All Files
Update All Files
Commit All Files...
------------------------------
Checkout...
------------------------------
Show "<name>" Changes
Diff "<name>"
Update "<name>"
Commit "<name>"...
------------------------------
Tag "<name>"...
Branch "<name>"...
------------------------------
Show "<name>" Annotations
Show "<name>" History
------------------------------
Revert "<name>" Modifications
Ignore "<name>"                 (Unignore)

Versioning Window

Figure: Versioning window showing one project after invoking the Show Changes action on Petstore project ordered by Status

+----------------------------------------------------------------------------------------------+
| Versioning - Petstore (10 minutes ago)                                                       |
+----------------------------------------------------------------------------------------------+
| [ All ] [ Local ] [ Remote ] | [ R ] [ D ]   [ U ] [ C ]                                     |
|----------------------------------------------------------------------------------------------|
|______________File________________|_____Status____v_|_________________Folder__________________|
| Bundle.properties                | Local Conflict  | petstore/src/com/mycompany/petstore     |
| MyClassInDefaultPackage.java     | Local Conflict  | petstore/src/com/mycompany              |
| Main.java                        | Local/Remote Mod| petstore/src/com/mycompany/petstore     |
| Project.properties               | Local/Remote Mod| petstore/nbproject                      |
| PetstoreApp.java                 | Local New       | petstore/src/com/mycompany/petstore     |
| PetstoreApplicationForm.java     | Local Deleted   | petstore/src/com/mycompany/petstore     |
| PetstoreLib.java                 | Local Modified  | petstorelib/src/com/mycompany/petlib    |
| PetstoreData.java                | Remote Added    | petstore/src/com/mycompany/petstore     |
| PetstoreApplication.java         | Remote Removed  | petstore/src/com/mycompany/petstore     |
| PetstoreAppTest.java             | Remote Modified | petstore/test/com/mycompany/petstore    |
|                                  |                 |                                         |
|                                  |                 |                                         |
+----------------------------------------------------------------------------------------------+

Components:

  • All toggle button - if selected all files (local, remote and conflicting) are shown in the table. If no changes are available it shows No Local/Remote Changes label centered in the table. Always enabled.
  • Local toggle button - if selected only local and conflicting files are shown in the table. If no changes are available it shows No Local Changes label centered in the table. Always enabled.
  • Remote toggle button - if selected only remote and conflicting files are shown in the table. If no changes are available it shows No Remote Changes label centered in the table. Always enabled.
  • R (Refresh Status) button - refreshes the status of versioned objects (projects, folders, files) shown in the Versioning window. Button tooltip is Refresh Status. Always enabled.
  • D (Diff) button - opens the Diff window in the editor. Button tooltip is Diff All.
  • U (Update) button - invokes the update action on the versioned objects (projects, folders, files) shown in the Versioning window. Button tooltip is Update All . Always enabled.
  • C (Commit) button - invokes the commit action on the files shown in the Diff window. Button tooltip is Commit All. Always enabled.
Figure: Versioning window on Windows Classic L&F

Contextual Menu: File Node

Open
-------------------
Diff                 (default action)
Update
Commit...
--------------------
Tag...
Branch...
--------------------
Show Annotations...
Show History...
--------------------
Exclude from Commit   (Include in Commit)
Revert Modifications  (Revert Delete)(Delete)
Ignore                (Unignore)

Diff Window

Figure: Diff window showing the difference between the current remote revision of Main.java and last update copy

 -------------------
/ Petstore [ Diff ] \
+----------------------------------------------------------------------------------------------+
| [ Local vs Remote ] [ Local ] [ Remote ] | |_Main.java________________v_| [ N ] [ P ]        |
|----------------------------------------------------------------------------------------------|
|_______Remote Modified 1.8 (Based on 1.7)______|_________Local Modified (Based on 1.7)________|
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
|                                               |                                              |
+----------------------------------------------------------------------------------------------+

Components:

  • Local vs Remote toggle button - if selected, all files (conflicting, local and remote) are shown in the file combo box. The diff component shows local modifications for locally changed file, remote modifications for remotely changed files and difference between remote and local files for files changed locally and remotely. Always enabled.
  • Local toggle button - if selected, only local changed files are shown in the file combo box. The diff component shows local modifications since the last update or checkout. Always enabled.
  • Remote toggle button - if selected, only remote changed files are shown in the file combo box. The diff component shows remote modifications since the last update or checkout. Always enabled.
  • File combo box - contains the list of differing files. The list items depend on the selected toggle button.
  • N (Next Difference) button - scrolls the diff view to the next difference (cycles over all files). Keyboard shortcut is F12. Always enabled.
  • P (Previous Difference) button - scrolls the diff view to the previous difference (cycles over all files). Keyboard shortcuts is Shift-F12. Always enabled.
Figure: File Combo Box on WinXP L&F

Commit Dialog

Figure: Commit dialog

+----------------------------------------------------------------------------------------------+
| Commit - Petstore                                                                            |
+----------------------------------------------------------------------------------------------+
|                                                                                              |
| Commit Message:                                                                              |
| +------------------------------------------------------------------------------------------+ |
| |                                                                                          | |
| |                                                                                          | |
| |                                                                                          | |
| |                                                                                          | |
| +------------------------------------------------------------------------------------------+ |
|                                                                                              |
| Files to Commit:                                                                             |
| |______________File____________|___Status____v__|_Commit Action_|___________Folder_________| |
| | PetstoreApp.java             | Local New      | Add as Text   | petstore/src.../petstore | |
| | PetstoreApp.jpg              | Local New      | Add as Binary | petstore/src.../petstore | |
| | PetstoreApplicationForm.java | Local Deleted  | Remove        | petstore/src.../petstore | |
| | Bundle.properties            | Local Modified | Commit        | petstore/src.../petstore | |
| | Main.java                    | Local Modified | Commit        | petstore/src.../petstore | |
| | PetstoreLib.java             | Local Modified | Commit        | petstorelib/nb.../petlib | |
| | Project.properties           | Local Modified | Exclude from C| petstore/nbproject       | |
| |                              |                |               |                          | |
| +------------------------------------------------------------------------------------------+ |
|                                                                                              |
|                                                                      [[ Commit ]] [ Cancel ] |
+----------------------------------------------------------------------------------------------+

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems