Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Lets assume a project committer wants to tag or branch a project located in a remote Subversion repository. Assuming this repository has been laid out according to the recommendations in How to Organize a Subversion Repository, the following command could be used to tag the trunk of project1 located within the FOO repository:

No Format
svn copy \
     svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm/project1/trunk \
     svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm/project1/tags/tag-name

Likewise, a branch can be made in the same manner:

No Format
svn copy \
     svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm/project1/trunk \
     svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm/project1/branches/branch-name

After creating a branch, it is likely you will want to switch to that branch in your current working copy of the project. This can be done with the following command:

No Format
svn switch \
     svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm/project1/branches/branch-name

Finally, there is no concept of a tag or branch within Subversion. They are both simply inexpensive copies made within the repository. It is up to the committers to honor that items in the tags directory are not modified directly. This can be enforced using hooks in the current version of Subversion if desired. In the future, a better security mechanism will be developed by the Subversion team.