Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
svn(1)                   Subversion Command Line Tool                   svn(1)

       svn - Subversion command line tool

       svn command [options] [args]

       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.

       This manpage provides a brief description of the svn command.  Details
       as well as more about Subversion as a general version control system is
       documented in the The Subversion Book.

       These options are understood by svn commands.  Not all options are
       available to every command.  See the individual command descriptions
       for details.

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

       -v, --verbose
              Print additional information.

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

              Print client version info.

       -N, --non-recursive
              Local; run only in current working directory.

              Try operation but make no changes.

       -R, --recursive
              Operate recursively (default).

              Force operation to run.

       -m, --message MSG
              Specify log message.

       -F, --file ARG
              Read data from file ARG.

       --encoding ARG
              Take log message in charset encoding ARG.

              Display update information.

       --username ARG
              Specify a username ARG.

       --password ARG
              Specify a password ARG.

       -x, --extensions ARG
              Pass ARG as bundled options to GNU diff.

              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.

       -q or --quiet
              Print as little as possible.

       --xml  Output in xml.

              Use strict semantics.

              Disregard default and svn:ignore property ignores.

              Do not cache authentication tokens.

       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 [--targets file] [-Nq]
              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". 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

       cat TARGET [TARGET ...]  [--username name] [--password arg] [-r]
              Output the content of specified files or URLs.

       checkout repository [repository...] [destination] [--username name]
       [--password arg] [--no-auth-cache] [-rqN]
              (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.

              If destination is omitted the basename of repository will be
              used as the destination.  If multiple URLs are given each will
              be checked out into a sub-directory of destination, with the
              name of the sub-directory being the basename of the URL.

              example: svn checkout targetdir

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

       commit file [--force] [--username name] [--password pass] [--no-auth-
       cache] [--encoding] [-mFqN]
              (Alias: ci) Use this command when you wish to ``post'' your
              changes to other developers, by incorporating them into the
              source repository.

              example: svn commit foo.c bar.h baz/ bat/*.m

       copy source destination [--username name] [--password pass] [--no-auth-
       cache] [--encoding] [-mFrq]
              (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

              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 foo.c
                $ svn ci -m "copied that remote bar.c here"

       delete file|dir [--force] [--targets file] [--username name]
       [--password pass] [--no-auth-cache] [--encoding] [-mFq]
              (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...] [--username name] [--password pass] [--no-auth-cache]
       [--no-diff-deleted] [-rxN]
              (Alias: di) 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/--non-recursive with a directory target will prevent
              recursive descent into subdirectories.

              --no-diff-deleted will not print differences for deleted files.

              example: svn diff README

              Compares the working copy version of the file with current
              repository version.

              example: svn diff -r HEAD README

              Compares the working copy with most recent repository version.

              example: svn diff -r 123:456 README

              Compares revisions 123 and 456 of the file in the repository.

                svn diff -r 123:456

              Compare revisions 123 and 456 of the file in the repository
              without the need for a working copy.

       export source [destination] [--username name] [--password pass] [--no-
       auth-cache] [-rq]
              If source is a URL exports a clean directory tree from the
              repository specified by URL, at revision REV if it is given,
              otherwise at HEAD, into destination.  If source is a path
              exports a clean directory tree from the working copy specified
              by PATH.  All local changes will be preserved, but files not
              under revision control will not be copied.  NOTE: If destination
              is omitted, the last component of the URL is used for the local
              directory name.

       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] [--username name]
       [--password pass] [--no-auth-cache] [--encoding] [-FmqN]
              Import a file or tree into the repository.

       info target1 [target2 ...] [--targets file] [-R]
              Print info about a versioned resource.

       list url [url ...] [--username name] [--password pass] [--no-auth-
       cache] [-rvR]
              (Alias: ls) List directory entries of a URL.

       log [url] [file|dir] [New-Repository-Entry] [--targets file]
       [--username name] [--password pass] [--no-auth-cache] [--strict]
       [--xml] [-rqv]
              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 revision range
              specification (using -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.  With -v, also print all affected paths with each log
              message.  With -q, don't print the log message body itself (note
              that this is compatible with -v).

              example: svn log

              Recursively retrieve logs for all revision under "."

              example: svn log README

              Retrieve logs for only those revisions where README was

              example: svn log

              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 README LICENSE

              Retrieve logs for both files in the remote repository without
              the need for a local checkout of the repository.

       merge PATH1[@N] [PATH2[@M]] [WCPATH] [--force] [--username name]
       [--password pass] [--no-auth-cache] [--dry-run] [-rNq]
              Apply the differences between two paths to a working copy path.
              PATH1 and PATH2 are either working-copy paths or URLs, specified
              at revisions N and M.  These are the two sources to be compared.
              N and M default to HEAD if omitted.  WCPATH is the working-copy
              path that will receive the changes.  If omitted, a default value
              of '.' is assumed.  If PATH2 is omitted the revision option must
              be passed to identify two versions of PATH1, for example:
                svn merge -r 4:5

       mkdir [directory...] [--username name] [--password pass] [--no-auth-
       cache] [--encoding] [-mFq]
              Create the directory(ies), if they do not already exist. The
              directories can be specified as a local directory name, or as a

       move [SOURCE] [DEST] [--username name] [--password pass] [--no-auth-
       cache]  [--force] [--encoding] [-mFrq]
              (alias: mv, rename, ren) 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

       propdel propname [targets] [-qR]
              (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] [-R]
              (Alias: pget, pg) Get the value of propname on files and

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

       propset propname [propval] [targets] [--targets file] [-FqR]
              (Alias: pset, ps) Set property propname to propval on files and

              Note: svn recognizes the following special properties but will
              store any arbitrary properties set:

                     A newline separated list of file patterns to ignore.

                     Keywords to be expanded.  Valid keywords are:

                     URL, HeadURL
                            The URL for the head version of the object.

                     Author, LastChangedBy
                            The last person to modify the file.

                     Date, LastChangedDate
                            The date/time the object was last modified.

                     Rev, LastChangedRevision
                            The last revision the object changed.

                     If present, make the file executable. This property
                     cannot be set on a directory.  A non-recursive attempt
                     will fail, and a recursive attempt will set the property
                     only on the file children of the directory.

                     One of 'native', 'LF', 'CR', 'CRLF'.

                     The mimetype of the file.  Used to determine whether to
                     merge the file, and how to serve it from Apache.  A
                     mimetype beginning with 'text/' (or an absent mimetype)
                     is treated as text.  Anything else is treated as binary.

                     A newline separated list of module specifiers, each of
                     which consists of a relative directory path, optional
                     revision flags, and an URL.  For example :
                       foo/bar -r 1234

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

       resolve target [target...] [--targets file] [-Rq]
              Remove 'conflicted' state on working copy files or directories.
              Note:  this routine does not semantically resolve conflict
              markers; it merely removes conflict-related artifact files and
              allows TARGET to be committed again.

       status [targets] [--username name] [--password pass] [--no-auth-cache]
       [--no-ignore] [-uvNq]
              (Alias: stat, st) Print the status of working copy files and

       switch url [target] [--username name] [--password pass] [--no-auth-
       cache] [-rNq]
              (Alias: sw) Update working copy to mirror a new URL. This is the
              way to move a working copy to a new branch.

       update [file...] [--username name] [--password pass] [--no-auth-cache]
       [-rNq] (Alias: up) Bring changes from the repository into the working
              copy.  If no revision given, bring working copy up-to-date with
              HEAD rev.  Else synchronize working copy to revision given by
              -r.  For each updated item a line will start with a character
              reporting the action taken.  These characters have the following

              A      Added

              D      Deleted

              U      Updated

              C      Conflict

              G      Merged

              example: svn update foo.c bar.h baz/ bat/*.m



svn r3146                         9 Sept 2002                           svn(1)


Want to link to this manual page? Use this URL:

home | help