Subversion Reference

Revision as of 14:02, 5 April 2006 by Manus (Talk | contribs)

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 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.
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 ­­diff­cmd diff ­x ­­normal diff main.c.
­­--file FILE (­F) 
Use the contents of file FILE as an argument for a given subcommand.
Forces a particular subcommand to run.
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 when calculating differences (rely on path contents alone).
Prints output in a format suitable for concatenation.
­­--message (­m) MSG 
Specify a commit message MSG.
Prevents caching of authentication information.
Disable auto­props, overriding the enable­auto­props directive in the config file.
Prevents Subversion from printing differences for deleted files.
Shows files in the status listing that would normally be omitted since they match a pattern in the svn:ignore property.
Prevents prompting for authentication information.
­­--non­-recursive (­N) 
Stops a subcommand from recursing into subdirectories.
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.
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 harvesting historical information when a copy is encountered.
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.
Prints the client version info.
Prints output in XML format.


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

Bypass the repository hook system.
Follow copy history when examining a path.
­­--in-­repos-­template ARG 
Specify a template for the repository structure when creating a new repository.
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 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.
  • dirs­changed : 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

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

executable : Executable file permission.
mime­type : MIME type of a file.
ignore : List of file patterns which certain Subversion operations will ignore. Full list may be obtained by svn status ­­no­ignore.
eol­style : Possible values are: native, CRLF, LF, CR.
externals : Instructions for Subversion to populate a versioned directory with one or more other checkedout Subversion working copies.
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:
editor­cmd = vim
log­encoding = iso­8859­2
enable­auto­props = yes
*.sh = svn:executable
*.bat = svn:eol­style=CRLF
*.c = svn:eol­style=native;svn:keywords=Id
  • Autocompletion in bash:
shopt ­s extglob progcomp
. /usr/share/subversion/.../bash_completion

Other sources of information 
Home page of the Subversion project. 
Version Control with Subversion | a book on Subversion. 
TortoiseSVN is a Windows client for Subversion implemented as a windows shell extension.