Getting Started with SnapshotCM
SnapshotCM is a configuration management tool for maintaining versioned source files. SnapshotCM supports HP-UX, Linux, Solaris, OSX and Windows NT platforms. All platforms support command-line access. Windows also supports a graphical interface.
Architecture
SnapshotCM uses a client-server model. The SnapshotCM server running on a central machine maintains versioned files in a database.
The SnapshotCM clients run on user workstations. Many of the command names are similar to RCS: wci, wco, wdiff, whist (=rlog) and wmerge. Other commands exist for manipulating attributes that RCS does not support, running the GUI, etc.
Key Terms
A SnapshotCM project is a collection of files and directories to be versioned together. Each version of a project is called a snapshot.
Snapshots and workspaces are the two places your files are kept. A snapshot is a version of project and is a state of your file hierarchy maintained by the central server. All attributes are maintained in the snapshot (name, directory, content, mode, keyword expansion setting, Text/Binary IO setting, and existence). All changes to files and directories affect a single snapshotno other snapshot is affected. Another way to understand a snapshot is as a parts list or global label of files, along with their versions and attributes. Many snapshots can exist simultaneously for different purposes. As a list of references, snapshots can be created and removed easily. Changes can be copied or merged among snapshots, and snapshots are mapped to local workspaces where editing and building occur.
A workspace is a directory hierarchy on a developer's workstation. A workspace is associated with at least one snapshot. Once an association is created, file operations need not reference the server or snapshot explicitly.
For Windows, SnapshotCM has a GUI interface. The Project Browser (PB) displays the relationships among the various project snapshots. A Workspace Browser (WB) is an explorer like interface that displays the file hierarchies held by snapshots and workspaces.
Using SnapshotCM
To manipulate files, create a workspace by associating a snapshot with your desired workspace. Do this by running "wmap add". Then chdir into the workspace and use wupdate (or wco) to populate the workspace. On Windows, you may prefer to run the GUI. Select your project and double click the snapshot you want to browse. In the GUI, files can be checked-out or checked-in using right-click or by dragging from one pane to another or by using the toolbar buttons.
To check your snapshot to local workspace association, run wmap from a command prompt or select Snapshot -> Show Workspace Mapping... from the GUI.
The commands are located at C:\Program Files\True Blue Software\SnapshotCM on Windows (default location), and /opt/SnapshotCM/bin on Unix.
See also: http://www.truebluesoftware.com/
Quick Reference - Workspace Commands:
Command Syntax | Description |
---|---|
wci [-C comment] [-u | -l] file|dir | Check in new revisions. |
wci -auto [-d] file|dir | Import new files or dirs |
wco [-u|-l] [-t lockComm] file|dir | Update and unlock/lock workspace files |
wdiff [-K] file|dir | Compare snapshot content with local content. |
whist [-A] [-T|-P] [-z] file|dir | Display history of selected items. |
wls [file|dir] | List snapshot file attributes |
wmap add|find|list | Add or list workspace-snapshot mapping. |
wmerge file | Merge snapshot content changes into local file. |
wremove file|dir | Remove item from snapshot and workspace. |
wrename file|dir newName | Rename an item in the snapshot and workspace. |
wset [attribute option] file|dir | Change unix and PC I/O modes and keyword attributes. |
wupdate | Update working set files and attributes. |
Most workspace commands:
- when given a directory, operate on the names in that directory rather than the directory itself.
- accept a -R option to operate recursively on a directory hierarchy, and -d to operate on directory itself.
- accept -? and --help options to display usage.
- accept -n and -q options to preview actions and suppress normal output.
- accept -M to show workspace mapping, and -V to show command version.
- accept explicit workspace via -N workspace, or via -h host -S snapshotPath -D directory.
- accept -X to display full paths in output.
- accept both numeric and snapshot path names as revision arguments to the -r option. "." means the revision selected by the currently mapped snapshot, ".." the revision selected by the parent of the currently mapped snapshot, and so on. Full snapshot paths are OK too.
Quick Reference - Snapshot Commands:
Command Syntax | Description |
---|---|
sscompare -h host srcSS tgtSS | Display differences between snapshots. |
sscopy -h host -r AP|AS|IP|IS srcPath tgtName | Copy a release snapshot. |
sscreate -h host SSPath | Create a new snapshot. |
sslist [-H] [-P] [-R] [-h host [[-X] [-d] path...]] | List snapshots. |
sspromote -h host [-l|-p|-q] [-R] srcSS [path...] | Copy path changes to a parent snapshot. |
ssremove -h host [-f] SSPath | Permanently delete a snapshot. |
ssrename -h host SSPath newName | Rename a snapshot. |
ssupdate -h host [-l|-p|-q] [-S srcSS] tgtSS [path...] | Copy path changes between snapshots. |
All commands support default options set in $HOME/.snapshotcmrc. For example, to turn off "wco -l" lock comment prompting, add wco -t "" to the .snapshotcmrc file (which defaults the lock comment to the empty string).