ARB-SVN-Repository

You can browse the source in trac:

directly in SVN:

or you  download a source-tarball
(Note: source-tarballs are included in all  builds. Pick arbsrc.tgz)

But the recommended way to access ARB source is to checkout a local copy using SVN:

SVN stats

http://dev.mikro.biologie.tu-muenchen.de/statsvn/loc_small.png

External read access

Checkout the development trunk using

svn co --username coder --password gimmeARBsource http://svn.mikro.biologie.tu-muenchen.de/svn/trunk ARB

or the latest stable release using

svn co --username coder --password gimmeARBsource http://svn.mikro.biologie.tu-muenchen.de/svn/branches/stable_5.0 ARB
  • If you receive an error message like
    svn: OPTIONS of 'http://svn.mikro.biologie.tu-muenchen.de/svn/trunk': authorization failed: Could not authenticate to server: rejected Basic challenge (http://svn.mikro.biologie.tu-muenchen.de)
    
    you may edit your ~/.subversion/config to contain
    password-stores=
    

Internal access

svn co svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/trunk dest-dir

or w/o ssh

svn co file:///menuett1/repository/ARB/trunk dest-dir

Submit patches

If you have made patches to ARB, dont have write access to the repository and would like to share them with the public, use

svn diff >my.patch

to create a patchfile and send it together with a short description to devel@….

Conventions

  • When commiting changed code to the repository please separate between
    • real changes and
    • cosmetic changes (where you only change indentation, TABs, etc.)

and commit both separately. Otherwise it is extremly difficult to track real changes.

  • Try to keep changesets compact (do not change 10 different things and checkin them all together)
  • On commit provide comments describing what changed why.

Restoring deleted files

To restore a deleted file together with it's history use

cd $ARBHOME/PATHTODELETEDFILE
svn cp svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/trunk/PATHTODELETEDFILE/DELETEDFILE@FROMREVISION .

Branching and Merging

Branching

  • create YOURBRANCH from lastest trunk revision
    svn cp svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/trunk svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/branches/YOURBRANCH
    
  • create YOURBRANCH from specific trunk revision
    svn cp svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/trunk@REVISION svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/branches/YOURBRANCH
    
  • svn cp cannot be used to copy over an existing branch (cause this will just copy the source branch into the existing destination branch).
    One possibility to sync was used  here.

Merging

  • merging from YOURBRANCH to trunk
    • cd into a checkout of trunk
      svn merge -c CHANGESET svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/branches/YOURBRANCH
      
  • merging from trunk to YOURBRANCH
    • cd into a checkout of YOURBRANCH
      svn merge -c CHANGESET svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/trunk
      

Then

  • check conflicts + test
  • check in changes (please add CHANGESET to log message)

CHANGESET can be

  • REV (one changeset)
  • REV1,REV2,REV3 (specific changesets)
  • REV1:REVn (range of changesets)

Deleting branches

svn delete svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB/branches/OBSOLETEBRANCH

See  Branching and Merging for details


hax

  • Post-edit commit comments:
    • [Done once: Create hook pre-revprop-change in REPOSITORY/hooks]
    • Example:
      svn propset --revprop -r ### svn:log "new logtext" svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB
      
      or to edit in vi
      svn propedit --revprop -r ### --editor-cmd vi svn:log svn+ssh://LOGINNAME@menuett.mikro.biologie.tu-muenchen.de/menuett1/repository/ARB
      
    • trac has to be resynced afterwards using root@waltz> trac-admin /var/www/trac/arb resync ###
    • [Note: replace ### with revision number and LOGINNAME with your accountname]