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 editing 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).