SVN uses the version number to record every change to the version library. General SVN operations do not need the version number, but some SVN operations need to specify the version number. We can specify a specific integer version number, but we can also use the svn keyword to refer to a special version number. SVN will actually calculate the actual integer version number it refers:
Head: the latest version in the version library;
Base: version of a work copy item. Note that this is the version number when you last update the item, which may be later than the latest version number;
Committed: the latest version of a work copy item, which is the same as or earlier than the base;
PREV: committed-1.
Head is for version libraries, and the other three are for a working copy directory or file.
Example:
$ SVN diff-r PREV: committed Foo. c
# Shows the last change committed to foo. c
$ SVN log-r head
# Shows Log message for the latest repository commit
$ SVN diff-r head
# Compares your working copy (with all of its local changes) to the latest version of that tree in the repository
$ SVN diff-r base: Head Foo. c
# Compares the unmodified version of foo. C with the latest version of foo. c In the Repository
$ SVN log-r base: Head
# Shows all commit logs for the current versioned directory since you last updated
$ SVN update-r Prev Foo. c
# Rewinds the last change on foo. C, decreasing Foo. C's working Revision
$ SVN diff-r base: 14 Foo. c
# Compares the unmodified version of foo. C with the way Foo. c looked in revision 14