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