Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

It includes definitions of basic terminology plus explanations and examples of basic commands.

Subversion Versions

The version of Subversion (no pun intended) is important because older versions are not compatible with newer ones, meaning you cannot checkout a project with say 1.8 and then use a 1.6 client on it.  This is because the metadata formats used to track local files changes with minor release numbers in incompatible ways. 

You can use this command to upgrade your local copy from an older client to the newer one.

No Format
cd sandbox; svn upgrade .

You should also make sure that your IDE's Subversion library is compatible with the command line client (covered in Project Development in Eclipse).

Terminology

Here are some basic terms with which you should be familiar in order to understand the rest of this guide.

...

A working copy is your local version of any SVN module or file from the remote repository.  Executing an svn checkout will create a local copy of a file or directory.

master copy

The master copy refers to the current version of a file on the SVN server, as opposed to a local copy on your computer.

commit

Executing a commit will push your changes on to one or more files or directories to the remote repository, making the master copy match your current local copy of those files.

revision

A revision in SVN is a globally unique identifier, starting with 'r', that tags the state of the repository at some particular time.  Every commit will create a new revision.  The revision numbers are numbered sequentially from 1 to however many revisions have been created.many revisions have been created.  (SVN actually tracks revisions globally rather than on a per file basis.)

URL

URLs in SVN are used to identify paths on the remote server which has the master copy of the source codeIn the case of Subversion, these These will have svn:// as the protocol.    (SVN supports other protocols as well such as https.)

For example, svn://svn.freehep.org/hps is the URL for the HPS Subversion repository.

...

In general, if you execute svn commands within a local directory that is tracked by Subversion, they will be interpreted correctly.

repository root

The base URL node of the remote repository such as svn://svn.freehep.org/hps/.freehep.org/hps/.  This is similar to the root node in a file system.

The "^" character can be used to specify the repository root for any command that accepts a Subversion URL.

...

Any part of the repository under the root.  Structure nodes can be conceptualized as a sub-directory on a file system, with the repository root as the root directory.

tag

This is a copy of some directory the code at a certain point in time like , usually when a release is made.  By convention, a tag should not be modified once created.  They are usually kept in a node called 'tags'.

...

This is a fork of the trunk, or even of another branch, which is for development and can be modified after it is created.  Branches are usually kept in a node called 'branches'.

merge

To merge means combining together two nodes in order to merge their changes togetherMerging will combine together the contents of two nodes.  This usually occurs when a branch should be reintegrated into the trunk or another branch.

revert

To revert means clobbering your local changes in the working copy and replacing them with the current copy from the remote repository.

...