CVS to SVN Migration

From BioJava

Jump to: navigation, search

Contents

BioJava now using SVN

As of January 2008 BioJava has moved the version control system from CVS to Subversion (svn). All Biojava modules, branches and tags and the history of the files has been imported into the new repository.


Downloading and updating code via Anonymous SVN

The code.open-bio.org server offers up read-only copies of source code repositories via anonymous SVN. A list of code repositories available via SVN can be seen here: http://code.open-bio.org/svnweb/index.cgi

Example Usage:

To see what SVN modules the BioJava project is making available, try this command:

svn list svn://code.open-bio.org/biojava

Checking out the latest BioJava development code

The following example shows how to obtain the latest BioJava codebase snapshot using anonymous SVN, it will check out the latest copy of biojava-live/ from the "SVN trunk" and will locally store it in a directory named "biojava-live" on your system:

svn co svn://code.open-bio.org/biojava/biojava-live/trunk biojava-live

Troubleshooting Anonymous SVN

If you encounter an error while using the SVN client or SVN Web interface, the likely cause is that our server is in the middle of replicating the repository from the primary source. While the mirror and replication process occurs, it is not unusual for SVN client functionality to break temporarily.

The final step of our codebase replication process is to explicitly re-verify the health and status of each repository, this process takes a few moments but while it occurs the repository is "locked" and unavailable for access.

   * Anonymous SVN repositories are updated/mirrored hourly from the primary developer server
   * Anonymous SVN repositories are verified and repaired (if necessary) every 20 minutes 

If a SVN client error occurs for longer than 20 minutes, please report this to: support@helpdesk.open-bio.org

Developer checkout

For a developer the SVN checkout works like this:

svn co svn+ssh://dev.open-bio.org/home/svn-repositories/biojava/biojava-live/trunk/  ./biojava-live

after initial checkout, you can change into the local ./biojava-live directory and execute SVN commands without the URL. For example:

svn update
svn commit -m "comments for this commit"
svn add myfile.java

If your local user name is different from the one one the open-bio server you can edit

~/.ssh/config

and add

host dev.open-bio.org
user blablabla


SVN and EOL

Unlike CVS, Subversion does not automatically convert End Of Line characters, which can cause problems across different operating systems. To work around this SVN is providing the eol-style property.

An easy way to ensure that new files are added with this property present is to configure the auto-props in your

~/.subversion/config 

file. By default this will contain commented-out configuration entries for enabling auto-props. Change this to

### Section for configuring miscellaneous Subversion options.
[miscellany]
### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
enable-auto-props = yes

### Section for configuring automatic properties.
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
[auto-props]
*.bat = svn:mime-type=text/plain;svn:eol-style=native
*.bmp = svn:mime-type=image/bmp
*.c = svn:mime-type=text/plain;svn:eol-style=native
*.css = svn:mime-type=text/css;svn:eol-style=native
*.cpp = svn:mime-type=text/plain;svn:eol-style=native
*.cxx = svn:mime-type=text/plain;svn:eol-style=native
*.dylan = svn:mime-type=text/plain;svn:eol-style=native
*.dylgram = svn:mime-type=text/plain;svn:eol-style=native
*.el = svn:mime-type=text/plain;svn:eol-style=native
*.gif = svn:mime-type=image/gif
*.h = svn:mime-type=text/plain;svn:eol-style=native
*.hdp = svn:mime-type=text/plain;svn:eol-style=native
*.htm = svn:mime-type=text/html;svn:eol-style=native
*.html = svn:mime-type=text/html;svn:eol-style=native
*.ico = svn:mime-type=image/x-icon
*.idl = svn:mime-type=text/plain;svn:eol-style=native
*.intr = svn:mime-type=text/plain;svn:eol-style=native
*.jam = svn:mime-type=text/plain;svn:eol-style=native
*.java = svn:mime-type=text/plain;svn:eol-style=native
*.jpeg = svn:mime-type=image/jpeg
*.jpg = svn:mime-type=image/jpeg
*.lid = svn:mime-type=text/plain;svn:eol-style=native
*.lisp = svn:mime-type=text/plain;svn:eol-style=native
*.lout = svn:mime-type=text/plain;svn:eol-style=native
*.m4 = svn:mime-type=text/plain;svn:eol-style=native
*.pdf = svn:mime-type=application/pdf
*.pl = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.png = svn:mime-type=image/png
*.py = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.rc = svn:mime-type=text/plain;svn:eol-style=native
*.sgm = svn:mime-type=text/sgml;svn:eol-style=native
*.sgml = svn:mime-type=text/sgml;svn:eol-style=native
*.sh = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.spec = svn:mime-type=text/plain;svn:eol-style=native
*.sql = svn:mime-type=text/plain;svn:eol-style=native
*.tif = svn:mime-type=image/tiff
*.tiff = svn:mime-type=image/tiff
*.text = svn:mime-type=text/plain;svn:eol-style=native
*.txt = svn:mime-type=text/plain;svn:eol-style=native
*.xhtml = svn:eol-style=native
*.xml = svn:mime-type=text/xml;svn:eol-style=native
INSTALL = svn:mime-type=text/plain;svn:eol-style=native
README = svn:mime-type=text/plain;svn:eol-style=native

Links

See also the SVN developers page in the OBF wiki

If you are working with Eclipse see how to configure a svn+ssh:// connection: subclipse

History of the update procedure

for more detailed documentation about the procedure used for the CVS to SVN migration see SVNmigrationHistory

Personal tools