NAME
cdv - codeville command line client tool
SYNOPSIS
cdv command [options]
DESCRIPTION
cdv is a client for codeville, a distributed version control system.
It aims to perform the same job as SVN, CVS, RCS, arch, etc.
COMMAND OVERVIEW
add <files>
Add new files to the repository. All files must be added before
they will be part of the version control system.
commit [-b] [-m "<comment>"] [-n]
Commits all changes made to the repository since the last
commit. A comment is required for every commit. It may either be
supplied via the -m option for simple comments or if the -m
option is omitted, whatever editor is specified in the EDITOR
environment variable will be launched. If no editor is
specified, vi is the default in all unixy environments
(including OS X and cygwin) and Notepad is the default in
Windows. In the editor, a comment may be added at the top, and
file changes which the user does not wish to have in a given
changeset can be removed by deleting them from the "### files"
list at the bottom (although merging cannot be avoided through
deleting things from the "### merge files" list). Every commit
creates a changeset. If there are changes since the last update,
files will be merged. In the event of unresolved conflicts, the
user will be prompted to resolve them.
-n used to commit changes off-line. Changes committed off-line
can still be used with all commands, but are not visible to
other users until an on-line commit is done.
-b forces commit to not make a new changeset. This will commit
changes which have already been committed locally via -n (or as
a result of having multiple repositories involved), but will not
create a new changeset for existing file modifications. This is
especially needed for committing to back-up servers (servers
started with -b) as it is the only way to commit changes to a
back-up server. This is not the recommended way to commit
changes to normal servers. In general, if one wishes to commit
changes committed offline without committing new changes, one
should commit and changeset with all the files in the ""###
files"" list removed.
construct <changeset>
Recreates the repository at the given changeset.
create <repository name>
Creates a new repository with the appropriate name.
describe [-x|-d] [-s] <changeset>
Gives the description of the changeset including the long name
of the change, the user who made the change, that date it was
made, the comment, the relation it has to other changesets, and
what files were modified and in what manner they were modified
(i.e. added, modified, renamed, or deleted).
-s gives a short description
-d does a diff
-x displays an XML version of the output. This is not compatible
with displaying a diff. This can only be used with parenthesized
changesets from the file history. It's sort of a hack right now,
really.
destroy <repository>
Destroys a repository. The opposite of create.
diff [-r <changeset> [-r <changeset>] ] [<files>]
Does a diff between different versions of each of given files.
If no files are specified, all relevant files are shown. The
first -r option indicates which changeset the diff should be
from, the second which it should be to. If no changesets are
specified, it shows the difference between the last known state
of the repository and the current client state.
edit <files>
Enables editting a file. When not in edit-mode, this is
unnecessary.
heads Lists the root nodes in the graph of changesets.
history [-h <changeset>] [-n <number>] [-s <skip count>] [-v] [<files>]
Gives the history of the repository or of the files specified.
Specifically, it lists all relevant change sets by short name,
user, date, and comment in most recent first order.
-n limits the number of changes printed to the given number
-h causes it to print the history starting at the given
changeset.
-s skips the first <skip count> changes.
-v causes it to print the changes verbosely which includes
additional information about each changeset which affected the
files.
init Initialize a new client with the current directory as the root.
Specify a directory other than current one by using the top
level -p switch.
is_ancestor <changeset1> <changeset2>
Tells whether or not <changeset1> is an ancestor of
<changeset2>. Note that it is possible for neither changeset to
be an ancestor of the other.
last-modified <file>
Returns the last changeset which modified a given file.
list-repos
Lists all the repositories on the same server as the repository
you are in.
password
Change your password.
print_dag [-h <changeset>] [-h <changeset>] [...] <file>
Prints the directed acyclic graph which shows the changesets
which have been applied to a file and their relationships.
Changesets specified with -h are treated as head nodes for the
graph (i.e. later changesets are excluded).
print_history [<changeset>]
Prints the directed acylcic graph of the the entire history.
Starts at the given changeset, if provided.
rebuild
Recreates all of the metadata from the static history. This
should generally only be done when instructed to by software
upgrade instructions.
remove <files>
Deletes files from the repository.
rename <file> <newname>
Moves or renames files.
revert [-a] <files>
Reverts any local changes to the file. At this time only changes
to the content of the file can be reverted. The ability to
revert adds, deletes, and renames will be coming in the future.
There is a subtle difference in the definition of revert from
what you might expect. It does not guarantee that it will
restore the file to some previous state. For example, if you are
in the middle of a merge and call revert on a file, it will be
regenerated by running the merge. If the file were modified
prior to running the merge update, the file contents will now be
different from anytime in the past.
Revert should be thought of as throwing away uncommitted
changes.
-a indicates files should only be reverted if they have not been
modified. Basically unmarks them as open for edit.
set <variable> <value>
Sets a Codeville variable to a given value.
show-vars
Show a list of all Codeville variables and what they are set to.
status [-v]
Shows changes not yet committed to the repository in brief.
-v gives more verbose status which includes mention of files
which are in the directory space, but not in the repository and
files missing from the directory space.
unset <variable>
Removes a Codeville variable so that it no longer has any
setting.
update [-d]
Gets all changes made to the repository since the last time you
did an update. Files will be merged as necessary. In the event
of unresolved conflicts, the user will be asked to resolve them.
-d pull in changesets but do not merge them. Has no effect on
the workspace state. This allows a user to browse and diff
changesets without having to merge.
SPECIFYING FILES
Files can be specified using bash-style wildcards on any platform. In
addition, '...' behaves like a find command, expanding all files and
directories within subdirectories. General notes:
Flags are listed in no particular order.
All printed graphs are output in a format intended to be run through
graphviz tools' "dot" tool.
SEE ALSO
cdvpasswd(1), http://www.codevile.org/
AUTHOR
This manual page was written by Michael Janssen <jamuraa@debian.org>
from the documentation available at http://www.codeville.org/, for the
Debian GNU/Linux system (but may be used by others).
Dec 1 2005