svn(1)

NAME
svn - Subversion command line tool

SYNOPSIS

svn command [options] [args]

NOTE
This manpage should cover all the features of the svn command line tool. This is still a very early version. It lacks documentation, it includes not yet support features and it is generally still in a bad shape. Beware.

OVERVIEW
Subversion is a version control system, which allows you to keep old versions of files (usually source code), keep a log of who, when, and why changes occurred, etc., like CVS, RCS or SCCS. Subversion keeps a single copy of the master sources. This copy is called the source ``repository''; it contains all the information to permit extracting previous software releases at any time. More about Subversion as a general version control system is documented elsewhere.

OPTIONS

-? or -h or -H or --help
    Show help text.

-V or --verbose [quiet|progress|verbose|trace]
    Determines the level of spewage that the client gives (progress is the default, --verbose without argument defaults to verbose)

-D or --date DATESPEC
    Specify which date to operate on.

-r or --revision REV
    Specify repository revision to operate on. Separate multiple revisons with `:'.

-v or --version
    The subversion and svn version is printed.

-l or --local-dir
    Local; run only in current working directory.

--recursive
    Operate recursively (default).

-d or --destination DESTP
    Target directory to operate on.

--force
    Force. Don't ask any questions, I know what I'm doing.

-m or --message MSG
    Specify log message

-F or --msg-file FILE
    Read the log message from FILE.

-p or --stdout
    Check out/update/whatever files to standard output

-n or --dry-run
    Don't actually do it, only show what would be done if the given command did run.

--no-rc
    Suppress reading of .svnrc.

-e or --editor EDITOR
    Edit messages with EDITOR.

--read-only
    Make new working files read-only.

--writable
    Make new working files read-write (default)

-I or --ignore GLOB
    Ignore entities whose names match GLOB

-K or --keywords GLOB
    Expand keywords in files whose names match GLOB.

-L or  --line-conversion GLOB
    Do line-end conversion for files matching GLOB.

--targets
    Supply a file used as entry and URL args for a given command. You can also supply '-' as the file to read from standard input. The file will be read as one argument for each line, even if given on standard input.

--  End of option processing

-q or --quiet
    alias for --verbose=quiet

-T or --text-defaults GLOB
    alias for '-L GLOB -K GLOB'

COMMANDS
svn has many options. Remember to run svn help to display a list of all commands, and to request a help text for a particular command, run svn help command.

add file...
    Use this command to enroll new files in svn records of your working directory. The files will be added to the repository the next time you run "svn commit". Note: You should use the "svn import" command to bootstrap new sources into the source repository. "svn add" is only used for adding new files to an already checked-out module. example: svn add foo.c bar.h baz/ bat/*.m

checkout repository...
    (Alias: co) A necessary preliminary for most svn work: creates your private copy of the source for repository (the repository must be identified with a valid URL string). You can work with this copy without interfering with others' work. At least one subdirectory level is always created. -d/--destination can be used to specify target dir, if the filepart of the URL is not what you want. example: svn checkout http://site.com/repo/svn -d targetdir

cleanup target...
    Recursively clean up the working copy, removing locks, resuming unfinished operations, etc.

commit file...
    (Alias: ci) Use this command when you wish to ``post'' your changes to other developers, by incorporating them into the source repository. -m/--message can be used to specify commit message on the command line. -F/--msg-file can be used to specify from which file to read the pre-written commit message. example: svn commit foo.c bar.h baz/ bat/*.m

copy source destination (Alias: cp) Where source and
    destination can be directories or files, local ones in a repository or remote ones specified as URLs. `copy' is used where you want to make a copy of source so that destination will share ancestry of source. Unless destination is a directory, destination must not exist (In the spirit of unix cp, source will be placed inside of destination if destination is a directory). example: If you do this (MAINTAIN ANCESTRY)
      $ svn copy foo.c bar.c Then foo.c and bar.c will share a common ancestor in the repository. example: But, if you do this (NO ANCESTRY)
      $ cp foo.c bar.c
      $ svn add bar.c
      $ svn ci -m "Initial Import" Then you will have the identical file in your working copy, but bar.c will have no revision history beyond the initial import that you just did. example: Make a new copy from a remote source
      $ svn cp http://rep.com/repo/path/bar.c foo.c
      $ svn ci -m "copied that remote bar.c here"

delete file|dir...
    (Alias: del, remove, rm) Mark the given files/directories for deletion upon commit. When you commit, the entries will be removed from the head revision in the repository, and deleted from your working copy. example: svn delete foo.c bar.h

diff [target...].
    Display file changes as contextual diffs. The target can be a directory, in which it operates recursively. The target can be an URL, although this is only useful if two revisions are also given. -r/--revision with a single revision causes comparison with the specified repository revision. With two revisions the comparison is between the two specified repository revisions. If this option is not given the comparison is between the working copy and its current repository revision. -n/--nonrecursive with a directory target will prevent recursive descent into subdirectories. example: svn diff README Compares the working copy version of the file with current repository version. example: svn diff -rHEAD README Compares the working copy with most recent repository version. example: svn diff -r123:456 README Compares revisions 123 and 456 of the file in the repository. example:
      svn diff -r123:456 http://rep.com/repo/README Compare revisions 123 and 456 of the file in the repository without the need for a working copy.

help [command]
    (Alias: ?, h) Without a given command argument, this prints generic help. If a specific command is entered, a short description on how to use that command is presented.

import Repository-URL [Path] [New-Repository-Entry]
    Import a file or tree into the repository.

info target1 [target2 ...]
    Print info about a versioned resource.

log [url] [file|dir]
    Show log messages (and affected entities) for commits in which any of the entities in question changed. If none were specified, then recursive inclusion is the default. The set of messages can be further restricted by a date or revision range specification (using -d or -r). A URL can also be specific to retrieve logs from a remote repository. If the URL is passed alone, then only that entry will be searched. If paths are also supplied with the URL, then only those paths are searched, based at the given URL. example: svn log Recursively retrieve logs for all revision under "." example: svn log README Retrieve logs for only those revisions where README was affected. example: svn log http://rep.com/repo/README Retrieve logs for the file without the need for a local checkout of the repository. example: svn log README LICENSE Retrive logs for all revisions where both files were affected. example: svn log http://rep.com/repo README LICENSE Retrieve logs for both files in the remote repository without the need for a local checkout of the repository.

mkdir [directory...]
    Create the directory(ies), if they do not already exist. The directories can be specified as a local directory name, or as a URL.

move [SOURCE] [DEST]
    Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. Both source and dest can be specified either as a local file name, or as a URL in a possibly remote repository.

propdel propname [targets]
    (Alias: pdel) Remove property propname on files and directories.

propedit propname [targets]
    (Alias: pedit, pe) Edit property propname with $EDITOR on files and directories.

propget propname [targets]
    (Alias: pget, pg) Get the value of propname on files and directories.

proplist [targets]
    (Alias: plist, pl) List all properties for given files and directories.

propset propname [value | --valfile file ] [targets]
    (Alias: pset, ps) Set property propname to value on files and directories.

revert [file...]
    Restore a pristine working copy version of file, undoing all local changes.

status [targets]
    (Alias: stat, st) Print the status of working copy files and directories. Options available for status include: -u/--show-updates, -v/--verbose and -n/--nonrecursive.

update [file...]
    (Alias: up) Execute this command from within your private source directory when you wish to update your copies of source files from changes that other developers have made to the source in the repository. Without a given argument, this command will update everything, recursively. example: svn update foo.c bar.h baz/ bat/*.m

WWW
http://subversion.tigris.org