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.
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.
| 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)
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
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)
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
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 ] |
+----------------------------------------------------------------------------------------------+