vvs branches [file ...] List the branchtags in the files listed (or available in the workspace if no file is specified) Implemented. vvs checkout Like CVS, except it understands dates as CVS outputs them. Tags are sticky, dates/versions are not. XXX Not implemented. vvs conflicts [-q] [-r] [file ...] Check for conflicts in the workspace or for a particular set of files. Will print C and the file name for any file that conflicts. Will exit with error code 1 if there is a conflict in any file with the update requested to check for. -q is quiet flag; suppresses normal output and only return the error code. XXX Not implemented. vvs currentdate [file] The current date for the file in the version control repository (matching the present revision of the file in the workspace). XXX Not implemented. vvs currentrev [file] Print the currently active revision number for that file in this workspace. XXX Not implemented. vvs diff Like CVS, except defaults to -kk and -u. XXX Not implemented. vvs idiff Interactive diff. Works like vdiff, but takes the diff from the workspace. XXX Not implemented. vvs issticky [file] Return OK if the file is sticky, error if the file isn't. XXX Not implemented. vvs lastrev [-r] [ ...] Prints out the name of the file (relative to the present working directory) followed by the last revision available for that file in the repository. XXX -r is not implemented. Will presently use the branch XXX active in the workspace. vvs listdirs [-l] List the directories supplied, with recursion, based on the CVS/ metadata. Defaults to everything under the current directory. Accepts absolute or relative paths; normalizes to be relative to the current directory if everything is underneath that, otherwise lists everything relative to /. Files supplied will be ignored (XXX at this point; later they might trigger an error.) Directories passed on the command line will not in themselves be listed, but their subdirectories will. -l turns off recursion. XXX -l is not implemented. vvs listfiles [-l] [directory|file ...] List the files/directories supplied, with recursion, based on the CVS/ metadata. Defaults to everything under the current directory. Accepts absolute or relative paths; normalizes to be relative to the current directory if everything is underneath that, otherwise lists everything relative to /. Files that are not under CVS control will be ignored (XXX at this point; later they might trigger an error.) -l turns off recursion. XXX -l is not implemented. vvs mod [-r] file Print out the diff between the previous revision and the revision that is specified on the command line; if a branch is specified as revision, use the last revision on that branch; if no revision is specified, use the last revision on branch active in the workspace this is done in. XXX Not implemented. vvs nextrev [-r] [file] revision Find the next revision from the one supplied; if file is supplied, return the same revision if there are no more revisions along the branch. -r only matters if revision is the revision from which the branch stems. XXX Not implemented. vvs patch Reads a patch with metadata (CVS or similar), checks out a workspace with the files listed in the patch at the revisions listed in the patch, and applies the patch. Use vvs update or similar to bring the entire workspace up to date. XXX Not implemented. vvs prefix [ ...] Output the common prefix for the files/directories supplied, compared to the present working directory. From root if all files/directories are not in subdirectories of the present working directory, from the present working directory if they are. Note that this will print an empty prefix if called with no parameters. Also note that any directory is considered its own prefix. vvs prevrev [-r] [file] Find the previous revision from the one supplied Branch and file are always ignored; they are allowed for symmetry with nextrev. If revision is a branch, the revision it was branched of will be output as the previous revision. If revision is X.1 or malformed, 1.1 will be output and an error code returned. XXX -r and file name passing not implemented. vvs pullfrom -X This will attempt to merge the set of changes in the old workspace into the new workspace, creating normal conflicts in the workspace if there are conflicts in the changes. We recommend that you take a backup of the workspace you are working in before trying a pullfrom into it. XXX Not implemented. vvs remoteroot Set CVS/RemoteRoot for the present workspace (recursive) XXX Not implemented. vvs repo Get the present CVSROOT from the workspace CWD points at. XXX Not implemented. vvs repopath Get the present path inside the repository for this workspace. XXX Not implemented. vvs revert [-p] [file ...] Revert file(s) to the last version checkout of the repository. -p Output files on stdout instead of in workspace 'vvs revert' will not do anything without arguments. XXX Not implemented. vvs server Talk the VVS remote protocol XXX Not implemented vvs setrev -r [file] Set the file to being revision in the workspace metadata, without touching the file. XXX Not implemented. vvs setroot Set CVS/Root for the present workspace (recursive); will update CVS/Repository XXX Not implemented. vvs softclone -X -X -X [-X ] -X [file ...] Manipulate files into a workspace from ANOTHER version control repository, by searching out IDs from the version control repository and re-generating a workspace based on this. This is useful in conjuction with softupdate; you can use the easy conflict resolution of softupdate in the newly created workspace, and pull the data back in the old workspace afterwards. To pull the data back, cd to the new workspace followed by find . \! -path \*/CVS/\* \(-type d -exec mkdir \{\} \; -o -type f \ -exec cp \{\} /new/workspace/\{\} \; \) This will include new files. XXX Not implemented. vvs softupdate Update to bring in *one* conflict. This is done by starting to test an update to the last version of the file, then trying versions backwards until a non-conflicting one is found, then merging with the next revision. This means that if a conflict is introduced and removed again, it will not count for softupdate. XXX Not implemented. vvs sticky [-r] [-D] [ ...] Set a sticky tag/date on a file. XXX Not implemented. vvs sync Synchronize the local CVS repository against the one in CVS/RemoteRoot XXX Not implemented. vvs update Update a file to the latest version that fit the file (either latest along the branch, or the present version, depending on whether any sticky tags or similar is in effect) Tags are sticky when set with this, revisions and dates are not. Allows date along branch. XXX Not implemented. vvs updateone Update a file one revision (or not at all, if it is at the last revision available from the repo.) XXX Not implemented. vvs vdiff Read a CVS-based diff from stdin and redisplay it using an internal pager and diff engine, exploiting extra information from the CVS repository. Colorization is done to display as much information about the diff as possible, including the difference between a changed line and a replaced line. This operation is fairly expensive. Keys: + Expand the diff chunk the cursor is in - Shrink the diff chunk the cursor is in See earlier part of diff See later part of diff See earlier part of diff See later part of diff p Create patch space with diff (prompt for directory location) If an idiff this will ask if it should drop the changes from the workspace they were in (to allow splitting a diff over two workspaces) d Drop part of diff (prompt for OK) q Quit pager w Write out diff as it is now (without dropped chunks) W Write out the dropped parts of a diff XXX Not implemented. - Some way of creating CVS/ directories for a directory WITHOUT checking it out; so you can use CVS maintenance on SOME files you have. - Synchronize the tip of some branch with a directory, similar to import, but including handling of removal - Create a new branch - Create a new root directory - Need some way of viewing diffs along an entire branch, instead of needing branch point tags.