Skip to content
Skip to breadcrumbs
Skip to header menu
Skip to action menu
Skip to quick search
Quick Search
Browse
Pages
Blog
Labels
Attachments
Mail
Advanced
What’s New
Space Directory
Feed Builder
Keyboard Shortcuts
Confluence Gadgets
Log In
Sign Up
Dashboard
Hausmates
Copy Page
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account. You can also
Sign Up
for a new account.
This page is being edited by
.
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
More colours
Strikethrough
Subscript
Superscript
Monospace
Clear Formatting
Bullet list
Numbered list
Outdent
Indent
Align left
Align center
Align right
Link
Table
Insert
Insert Content
Image
Link
Attachment
Symbol
Emoticon
Wiki Markup
Horizontal rule
tinymce.confluence.insert_menu.macro_desc
Info
JIRA Issue
Status
Gallery
Tasklist
Table of Contents
Other Macros
Page Layout
No Layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard Shortcuts Help
<img class="editor-inline-macro" src="/plugins/servlet/confluence/placeholder/macro?definition=e3RvY30&locale=en_GB&version=2" data-macro-name="toc"> <p>The following page details the Subversion (svn) installation at Codehaus. In addition, it also provides a set of "how-to" documents for both users and administrators of Subversion repositories tailored for the haus installation. If you are not interested in the details of the Codehaus installation, skip ahead to the <a class="confluence-link" href="#howto" data-anchor="howto" data-linked-resource-default-alias="howto" data-base-url="http://docs.codehaus.org">HAUS:How To</a> documents at the end of this document.</p> <p>Codehaus is running the latest and greatest version of Subversion on <code>beaver.codehaus.org</code>. We're happy to say that we've been using Subversion at the house ever since v0.25 was released. At the time of this writing, the most recent version of Subversion is v1.2.3. When the Subversion team releases a new version, one can expect it to be installed at Codehaus within a reasonable amount of time.</p> <p>The most recent version of Subversion can be found in <code>/usr/local/subversion</code> directory. In reality, this is a symbolic link to a directory in the form of <code>/usr/local/subversion-version</code> where <code>version</code> is the current version of the Subversion release. This enables the maintainer to switch back and forth between new and past installations with relative ease without impacting users. All binaries are located in <code>/usr/local/subversion/bin</code>, which is automatically inserted into your <code>PATH</code> upon login (via <code>/etc/profile.d/subversion.sh</code>). The two most frequently used commands are <code>svn</code> and <code>svnadmin</code>. Their use is illustrated in the <a class="confluence-link" href="#howto" data-anchor="howto" data-linked-resource-default-alias="howto" data-base-url="http://docs.codehaus.org">HAUS:How To</a> documents at the end of this document.</p> <p>The current installation is maintained by Pete Kazmier.</p> <h2>Repository Access</h2> <p>Subversion features several methods to access Subversion repositories. Each access method is described in the following subsections. Please note that not all of these methods are supported by the Codehaus installation at this time. Additionally, <code>svn.codehaus.org</code> is now registered to facilitate our userbase.</p> <h3>Local Filesystem</h3> <p>Local filesystem access is of limited use in the Codehaus environment because users should not be working on the Codehaus machine directly. However, there may be times when accessing a local repository is necessary. All Subversion repositories are located in the <code>/home/projects/FOO/scm</code> directory (where <code>FOO</code> is the name of the project). Thus, to check out a repository on the local machine, one would type:</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> svn co file:///home/projects/FOO/scm </pre></td></tr></table> <p>Obviously, in order to use this repository access mechanism, you must have a shell account on the Codehaus server. Note: you must specify the full pathname to the repository when using this access method.</p> <h3>Anonymous svnserve</h3> <p>Similar to CVS, Subversion includes a mechanism to provide remote anonymous/read-only access to repositories. The <code>svnserve</code> daemon provides this functionality. This access method enables users that do not have accounts on the Codehaus server to check out the repositories and track changes in their own local working copies. In order to check out a repository using this access method, one would type:</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> svn co svn://svn.FOO.codehaus.org/FOO/scm </pre></td></tr></table> <p>where <code>FOO</code> is the name of the project. Note: in this case, the anonymous user does not include the actual filesystem path <code>/home/projects</code> on the command line. The <code>svnserve</code> daemon executes as the <code>apache</code> user for security reasons. Thus, it is important that all Subversion repositories permit read access for the <code>apache</code> user. By default, all projects are automatically created in this manner.</p> <h3>Anonymous ViewCVS</h3> <p>The ViewCVS installation on Codehaus has been upgraded to a more recent version which supports browsing of Subversion repositories in a manner that is familiar to most CVS users. To access the repository, go to the following URL:</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> http://svn.FOO.codehaus.org/ </pre></td></tr></table> <p>where <code>FOO</code> is the name of the project. Again, the only requirement is that all repositoies must be permit read-write access for the <code>apache</code> user (under which the ViewCVS program is executed). Read-write access is required when a project is using the <code>bdb</code> backend. In the future, all Codehaus repos will use the <code>fsfs</code> backend at which point the write requirement can be dropped (and the <code>apache</code> user can be removed from a project's group). By default, all projects are automatically created in this manner.</p> <h3>Authenticated svnserve via SSH</h3> <p>Secure and authenticated access to the Codehaus Subversion repositories is provided via SSH (similar to the standard CVS access method used at Codehaus). By using SSH, a secure communication channel can be established to Codehaus over which passwords can be sent safely. This method enables all users with accounts on the Codehaus machine to check out repositories in a read-write manner. In order to check out a repository using this access method, one would type:</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> svn co svn+ssh://svn.FOO.codehaus.org/home/projects/FOO/scm </pre></td></tr></table> <p>Note: in this case, you must specify the full path to the repository which includes the actual filesystem path <code>/home/projects</code>. If your username on the client machine differs from your Codehaus username, you'll need to tell Subversion to invoke SSH differently; see<br /> <a href="http://svnbook.red-bean.com/svnbook/ch06s03.html#svn-ch-6-sect-3.3">http://svnbook.red-bean.com/svnbook/ch06s03.html#svn-ch-6-sect-3.3</a><br /> for details.</p> <h3>WebDAV over SSL</h3> <p>WebDAV access enables users to access repositories remotely via DAV which is an extension to the HTTP protocol. The Codehaus installation provides WebDAV access over secure SSL/TLS sessions over which passwords can be sent safely. This method enables all users read-only access to a repository, while limiting read-write access to authorized users in a project's group. The procedure to check out a repository is the same for both types of access:</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> svn co https://svn.codehaus.org/FOO </pre></td></tr></table> <p>When a user attempts to check in changes, they will be prompted by the svn client to provide a username and password that can be authenticated and authorized. Upon success, the check in will proceed. Note: users will be authenticated using the password on their shell account, which is by default, disabled.</p> <h2>Repository Backup Strategy</h2> <p>Every night, a hot-backup of each Subversion repository located in <code>/svnroot</code> (this is a directory of symlinks to each project's <code>/home/projects/FOO/scm</code> directory) is produced by <code>/etc/cron.daily/local-svn-backup.rb</code> (a simple wrapper to the <code>hot-backup.py</code> script provided with Subversion). Theses hot-backups are stored locally on the server in <code>/home/services/backup/svn/FOO</code> where <code>FOO</code> is the name of the Subversion repository.</p> <p>Within this directory, ten days-worth of fully-functional hot-backups reside. The naming convention used in this backup directory is <code>FOO-rev[HAUS:-count]</code> where <code>rev</code> is the global revision number of the repository. If a repository has not changed since the previous day (i.e. the revision number has not changed), then the name of the backup is appended with a dash followed by a simple incrementing counter. For example, in the following example, the repository has changed only twice in the previous ten days (revisions 12 and 13):</p> <table class="wysiwyg-macro" data-macro-name="noformat" style="background-image: url(/plugins/servlet/confluence/placeholder/macro-heading?definition=e25vZm9ybWF0fQ&locale=en_GB&version=2); background-repeat: no-repeat;" data-macro-body-type="PLAIN_TEXT"><tr><td class="wysiwyg-macro-body"><pre> drwxr-xr-x 6 root root 4096 Aug 24 04:02 testproject-13-3 drwxr-xr-x 6 root root 4096 Aug 23 04:02 testproject-13-2 drwxr-xr-x 6 root root 4096 Aug 22 04:02 testproject-13-1 drwxr-xr-x 6 root root 4096 Aug 21 04:02 testproject-13 drwxr-xr-x 6 root root 4096 Aug 20 04:02 testproject-12-12 drwxr-xr-x 6 root root 4096 Aug 19 04:03 testproject-12-11 drwxr-xr-x 6 root root 4096 Aug 18 04:02 testproject-12-10 drwxr-xr-x 6 root root 4096 Aug 17 04:02 testproject-12-9 drwxr-xr-x 6 root root 4096 Aug 16 04:02 testproject-12-8 drwxr-xr-x 6 root root 4096 Aug 15 04:03 testproject-12-7 </pre></td></tr></table> <p>Finally, remote backups are performed in the event of a local server catastrophe. These backups are part of the system-wide backup that occurs every night via an rsync process. To maximize the efficiency of rsync, a file with a constant name is required so that only differences between the local and remote versions are sent across the network. With the help of a small patch to the standard <code>hot-backup.py</code> script included with Subversion, a symbolic link to the most recent backup is created in the <code>/home/services/backup/svn/FOO</code> directory which is named <code>/home/services/backup/svn/FOO/FOO-CURRENT</code>. This enables the rsync process to efficiently send only the differences over the wire.</p> <h2>Subversion How-To Guides <img class="editor-inline-macro" src="/plugins/servlet/confluence/placeholder/macro?definition=e2FuY2hvcjpob3d0b30&locale=en_GB&version=2" data-macro-name="anchor" data-macro-default-parameter="howto"></h2> <p>The following are a series of "how-to" guides for a variety of Subversion-related tasks. The tasks are organized by role of the user.</p> <h3>Codehaus Administrator</h3> <p>The Codehaus adminstrator is a user that has root access to the Codehaus servers. This user can create and remove repositories, as well as convert existing CVS repositories to Subversion repositories.</p> <ul> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Install+or+Upgrade+the+Subversion+Software" data-linked-resource-id="50272" data-linked-resource-type="page" data-linked-resource-default-alias="How to Install or Upgrade the Subversion Software" data-base-url="http://docs.codehaus.org">How to Install or Upgrade the Subversion Software</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Configure+the+Permissions+in+a+Subversion+Repository" data-linked-resource-id="41971" data-linked-resource-type="page" data-linked-resource-default-alias="How to Configure the Permissions in a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Configure the Permissions in a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Configure+the+Permissions+in+a+Subversion+Repository" data-linked-resource-id="41971" data-linked-resource-type="page" data-linked-resource-default-alias="How to Configure the Permissions in a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Configure the Permissions in a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Create+a+New+Subversion+Repository" data-linked-resource-id="1350" data-linked-resource-type="page" data-linked-resource-default-alias="How to Create a New Subversion Repository" data-base-url="http://docs.codehaus.org">How to Create a New Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Send+Subversion+Commit+Logs+to+Email" data-linked-resource-id="1351" data-linked-resource-type="page" data-linked-resource-default-alias="How to Send Subversion Commit Logs to Email" data-base-url="http://docs.codehaus.org">How to Send Subversion Commit Logs to Email</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Setup+WebDAV+Access+to+a+Subversion+Repository" data-linked-resource-id="31953" data-linked-resource-type="page" data-linked-resource-default-alias="How to Setup WebDAV Access to a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Setup WebDAV Access to a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Setup+ViewCVS+Access+to+a+Subversion+Repository" data-linked-resource-id="1804" data-linked-resource-type="page" data-linked-resource-default-alias="How to Setup ViewCVS Access to a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Setup ViewCVS Access to a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Convert+a+CVS+Repository+to+a+Subversion+Repository" data-linked-resource-id="1355" data-linked-resource-type="page" data-linked-resource-default-alias="How to Convert a CVS Repository to a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Convert a CVS Repository to a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Recover+a+Subversion+Repository" data-linked-resource-id="1369" data-linked-resource-type="page" data-linked-resource-default-alias="How to Recover a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Recover a Subversion Repository</a></li> </ul> <h3>Project Committer</h3> <p>The project committer is a user who has read-write access to a project's source repository. This user can check out code as well as check in capability. The following How-To documents have been organized sequentially for a new Subversion user.</p> <ul> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Organize+a+Subversion+Repository" data-linked-resource-id="1372" data-linked-resource-type="page" data-linked-resource-default-alias="How to Organize a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Organize a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Import+Files+Into+a+Subversion+Repository" data-linked-resource-id="1373" data-linked-resource-type="page" data-linked-resource-default-alias="How to Import Files Into a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Import Files Into a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Check+Out+a+Subversion+Repository+via+Authenticated+svnserve" data-linked-resource-id="1376" data-linked-resource-type="page" data-linked-resource-default-alias="How to Check Out a Subversion Repository via Authenticated svnserve" data-base-url="http://docs.codehaus.org">How to Check Out a Subversion Repository via Authenticated svnserve</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Check+Out+a+Subversion+Repository+via+WebDAV" data-linked-resource-id="24942" data-linked-resource-type="page" data-linked-resource-default-alias="How to Check Out a Subversion Repository via WebDAV" data-base-url="http://docs.codehaus.org">How to Check Out a Subversion Repository via WebDAV</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Tag+and+Branch+a+Subversion+Repository" data-linked-resource-id="1377" data-linked-resource-type="page" data-linked-resource-default-alias="How to Tag and Branch a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Tag and Branch a Subversion Repository</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Browse+a+Subversion+Repository+via+ViewCVS" data-linked-resource-id="1380" data-linked-resource-type="page" data-linked-resource-default-alias="How to Browse a Subversion Repository via ViewCVS" data-base-url="http://docs.codehaus.org">How to Browse a Subversion Repository via ViewCVS</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Recover+a+Subversion+Repository" data-linked-resource-id="1369" data-linked-resource-type="page" data-linked-resource-default-alias="How to Recover a Subversion Repository" data-base-url="http://docs.codehaus.org">How to Recover a Subversion Repository</a></li> </ul> <h3>Anonymous User</h3> <p>The anonymous user is a user who does not have read-write access to a project or access to the Codehaus servers. This user can only check out read-only versions of a repository.</p> <ul> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Check+Out+a+Subversion+Repository+via+Anonymous+svnserve" data-linked-resource-id="1381" data-linked-resource-type="page" data-linked-resource-default-alias="How to Check Out a Subversion Repository via Anonymous svnserve" data-base-url="http://docs.codehaus.org">How to Check Out a Subversion Repository via Anonymous svnserve</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Check+Out+a+Subversion+Repository+via+Anonymous+WebDAV" data-linked-resource-id="24948" data-linked-resource-type="page" data-linked-resource-default-alias="How to Check Out a Subversion Repository via Anonymous WebDAV" data-base-url="http://docs.codehaus.org">How to Check Out a Subversion Repository via Anonymous WebDAV</a></li> <li><a class="confluence-link" href="/display/HAUSMATES/How+to+Browse+a+Subversion+Repository+via+ViewCVS" data-linked-resource-id="1380" data-linked-resource-type="page" data-linked-resource-default-alias="How to Browse a Subversion Repository via ViewCVS" data-base-url="http://docs.codehaus.org">How to Browse a Subversion Repository via ViewCVS</a></li> </ul>
Please type the word appearing in the picture.
Attachments
Labels
Location
Watch this page
< Edit
Preview >
Loading…
Save
Cancel
Next hint
search
attachments
weblink
advanced