Subversion Reference
Contents
Subversion Quick Reference Card
Subversion is a version control system that is a replacement for CVS. It has most of CVS's features. Generally, Subversion's interface to a particular feature is similar to CVS's, except where there's a compelling reason to do otherwise.
Quick start
- svnadmin create /var/svnroot
- svn import LocalDir file:///var/svnroot/ProjectName
- svn checkout file:///var/svnroot/ProjectName
- cd ProjectName
- svn help [command]
Subversion URLs
- file:// Direct repository access (on local disk).
- http:// Access via WebDAV protocol to Subversion-aware Apache server.
- https:// Same as http://, but with SSL encryption.
- svn:// Access via custom protocol to an svnserve server.
- svn+ssh:// Same as svn://, but through an SSH tunnel.
svn
svn subcommands
- add Adds files and directories.
- blame (praise, annotate, ann) Shows author and revision information in-line for the specified files or URLs.
- cat Outputs the contents of the specified files or URLs.
- checkout (co) Checks out a working copy from a repository.
- cleanup Recursively clean up the working copy.
- commit (ci) Send changes from your working copy to the repository.
- copy (cp) Copy a file or directory in a working copy or in the repository.
- delete (del, remove, rm) Delete an item from a working
- copy or the repository.
- diff (di) Display the differences between two paths.
- export Exports a clean directory tree.
- help Prints help text.
- import Recursively commit a copy of local dir into a repository.
- info Print information about PATHs.
- list (ls) List directory entries in the repository.
- log Displays commit log messages.
- merge Apply the differences between two sources to a working copy path.
- mkdir Create a new directory under version control.
- move (mv, rename, ren) Move a file or directory.
- propdel (pdel, pd) Remove a property from an item.
- propedit (pedit, pe) Edit the property of one or more items under version control.
- propget (pget, pg) Prints the value of a property.
- proplist (plist, pl) Lists all properties.
- propset (pset, ps) Sets a property on files, directories, or revisions.
- resolved Remove conflicted state on working copy files or directories.
- revert Undo all local edits.
- status (stat, st) Print the status of working copy files and directories.
- switch (sw) Update working copy to a different URL.
- update (up) Updates your working copy.
svn switches
- --config-dir DIR
- Read configuration from DIR instead of ~/.subversion.
- --diff-cmd CMD
- Use external program CMD for generating diff output instead of internal diff engine.
- --diff3-cmd CMD
- Use external program CMD for merging files.
- --dry-run
- Run the command without changing anything.
- --editor-cmd CMD
- Use external program CMD for editing files.
- --encoding ENC
- Instructs Subversion to use encoding ENC to store log messages.
- --extensions ARG (x)
- Additional arguments for external diff, eg.: svn diffcmd diff x normal diff main.c.
- --file FILE (F)
- Use the contents of file FILE as an argument for a given subcommand.
- --force
- Forces a particular subcommand to run.
- --force-log
- Forces a suspicious parameter passed to the message options to be accepted as valid.
- --help (h or ?)
- Prints help for a given command or general help text.
- --ignore-ancestry
- Ignore ancestry when calculating differences (rely on path contents alone).
- --incremental
- Prints output in a format suitable for concatenation.
- --message (m) MSG
- Specify a commit message MSG.
- --no-auth-cache
- Prevents caching of authentication information.
- --no-auto-props
- Disable autoprops, overriding the enableautoprops directive in the config file.
- --no-diff-deleted
- Prevents Subversion from printing differences for deleted files.
- --no-ignore
- Shows files in the status listing that would normally be omitted since they match a pattern in the svn:ignore property.
- --non-interactive
- Prevents prompting for authentication information.
- --non-recursive (N)
- Stops a subcommand from recursing into subdirectories.
- --notice-ancestry
- Pay attention to ancestry when calculating differences.
- --old ARG
- Uses ARG as the older target.
- --password PASS
- Password for authentication.
- --quiet (q)
- Print only essential information while performing an operation.
- --recursive (R)
- Makes a subcommand recurse into subdirectories.
- --relocate FROM TO [PATH...]
- Used with the svn switch subcommand, changes the location of the repository that your working copy references.
- --revision REV (r)
- Supply a revision REV (or range of revisions) for a particular operation.
- --revprop
- Operates on a revision property instead of a Subversion property specific to a file or directory (requires revision switch).
- --show-updates (u)
- Causes the client to display information about which files in your working copy are out-of-date.
- --stop-on-copy
- Stop harvesting historical information when a copy is encountered.
- --strict
- Causes Subversion to use strict semantics.
- --targets FILE
- Get the list of files that you wish to operate on from the file FILE.
- --username NAME
- Username for authentication.
- --verbose (v)
- Verbose mode.
- --version
- Prints the client version info.
- --xml
- Prints output in XML format.
svnadmin
svnadmin subcommands
- list-unused-dblogs : Ask Berkeley DB which log files can be safely deleted.
- create : Create a new, empty repository.
- dump : Dump the contents of filesystem to stdout.
- help : Help.
- hotcopy : Makes a hot copy of a repository.
- load : Read a dumpfile-formatted stream from stdin.
- lstxns : Print the names of all uncommitted transactions.
- recover : Recovers any lost state in a repository.
- rmtxns : Deletes transactions from a repository.
- setlog : Set the log-message on a revision.
svnadmin switches
- --by-pass-hooks
- Bypass the repository hook system.
- --copies
- Follow copy history when examining a path.
- --in-repos-template ARG
- Specify a template for the repository structure when creating a new repository.
- --incremental
- Dump a revision only as a diff against the previous revision, instead of the usual fulltext.
- --on-disk-template ARG
- Specify a template to use for the on-disk structure of the repository you want to create.
- --revision ARG (r)
- Specify a particular revision to operate on.
svnlook
svnlook subcommands
- author : Prints the author.
- cat : Print the contents of a file.
- changed : Print the paths that were changed.
- date : Print the date stamp.
- diff : Prints differences of changed files and properties.
- dirschanged : Print the directories that were themselves changed.
- help : Help.
- history : Print information about the history of a path in the repository.
- info : Print the author, date stamp, log message size, and log message.
- log : Print the log message.
- proplist : Print the names and values of versioned file and directory properties.
- tree : Print the tree.
- youngest : Print the youngest revision number.
svnlook switches
- --no-diff-deleted
- Prevents svnlook from printing differences for deleted files.
- --revision REV (r)
- Specify a particular revision number that you wish to examine.
- --transaction TID (t)
- Specify a particular transaction id TID that you wish to examine.
- --show-ids
- Show the filesystem node revision IDs for each path in the filesystem tree.
Info on files
File status
- U File was updated.
- A File was added.
- D File was deleted.
- R File was replaced.
- G File was merged.
- C Conflicting changes.
- ? Resource is not under version control.
- ! Resource is missing or incomplete (removed by another tool than Subversion).
Special properties
- svn
- executable : Executable file permission.
- svn
- mimetype : MIME type of a file.
- svn
- ignore : List of file patterns which certain Subversion operations will ignore. Full list may be obtained by svn status noignore.
- svn
- eolstyle : Possible values are: native, CRLF, LF, CR.
- svn
- externals : Instructions for Subversion to populate a versioned directory with one or more other checkedout Subversion working copies.
- svn
- keywords : List of keywords that will be substituted during commit:
$Date$ : date of the last modification $Rev$ : revision number $Author$ " the last user who changed the file $URL$ : full URL to the latest version of the file in the repository $Id$ : compressed combination of keywords above
client side
Client configuration
- File ~/.subversion/config:
[helpers] editorcmd = vim [miscellany] logencoding = iso88592 enableautoprops = yes [autoprops] *.sh = svn:executable *.bat = svn:eolstyle=CRLF *.c = svn:eolstyle=native;svn:keywords=Id
- Autocompletion in bash:
shopt s extglob progcomp . /usr/share/subversion/.../bash_completion
Other sources of information
- http://subversion.tigris.org
- Home page of the Subversion project.
- http://svnbook.redbean.com
- Version Control with Subversion | a book on Subversion.
- http://tortoisesvn.tigris.org/
- TortoiseSVN is a Windows client for Subversion implemented as a windows shell extension.