ARB-SVN-Repository
You can browse the source in trac:
or directly in SVN:
or you download a source-tarball:
- Source-tarballs are included in all published builds.
Pick arbsrc.tgz or something named like arb-r11968-source.tgz)
But the recommended way to access ARB source is to checkout a local copy using SVN, as described below.
SVN stats
External SVN access
read access
Checkout the development trunk using
svn co http://vc.arb-home.de/readonly/trunk ARB
or the latest stable release using
svn co http://vc.arb-home.de/readonly/branches/stable ARB
write access
- You'll need a /password combination to gain external write access.
Ask devel@…. - Checkout trunk using
svn co http://vc.arb-home.de/svn/trunk ARB
- If you receive an error message like
svn: OPTIONS of 'http://vc.arb-home.de/svn/trunk': authorization failed: Could not authenticate to server: rejected Basic challenge (http://vc.arb-home.de)
you may edit your ~/.subversion/config to containpassword-stores=
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 http://vc.arb-home.de/svn/trunk/PATHTODELETEDFILE/DELETEDFILE@FROMREVISION .
Revert commits
- To revert a single commit use
svn merge -c -REVISION .
- To revert several commits use
svn merge -r UPPER_REVISION:LOWER_REVISION .
(example: svn merge -r 123:122 . is the same as svn merge -c -123 .)
Branching and Merging
- BranchInfo for existing ARB branches
Branching
- create YOURBRANCH from lastest trunk revision
svn cp http://vc.arb-home.de/svn/trunk http://vc.arb-home.de/svn/branches/YOURBRANCH
- create YOURBRANCH from specific trunk revision
svn cp http://vc.arb-home.de/svn/trunk@REVISION http://vc.arb-home.de/svn/branches/YOURBRANCH
- Warning: svn cp cannot be used to copy over an existing branch (cause this will just copy the source branch into the existing destination branch).
To create a working checkout (WC) from YOURBRANCH call
svn co http://vc.arb-home.de/svn/branches/YOURBRANCH YOUR_DIR
Merging
Keep your branch up-to-date with parent branch
- frequently merge changes from the parent branch (normally 'trunk') of YOURBRANCH to avoid that they diverge
- first create a fresh WC from YOURBRANCH (as decribed above) and cd into that WC
- detect base revision of YOURBRANCH:
svn log --stop-on-copy | tail
The last revision shown is the revision where YOURBRANCH has been branched (the revision number is referred to as BASEREV below). - merge all changes from trunk
svn merge --accept postpone -r BASEREV:HEAD http://vc.arb-home.de/svn/trunk .
- if no conflicts exist, compile + test + commit
- if postponed conflicts exist:
- consider merging in multiple steps: first merge some revisions that do not conflict; then merge conflicting trunk-changes separately.
Do this from lower to higher revision numbers: if e.g. revision REVPROBLEM does not merge without conflicts into YOURBRANCH,- first merge -r BASEREV:REVPROBLEM-1,
- then attempt -r REVPROBLEM,
- if sucessful continue with -r BASEREV:HEAD. Commit after each successful partial merge.
- if you do not understand a conflict, please contact the author of the conflicting trunk-changeset
- consider merging in multiple steps: first merge some revisions that do not conflict; then merge conflicting trunk-changes separately.
- perform svn update in all modified WCs of YOURBRANCH and resolve local conflicts.
Merge all changes from a branch back to parent
This only works for branches created after [8425]! See BranchInfo (column 'svn:mergeinfo ok?' in ).
- go to a frash WC of destination branch
- call
svn merge --reintegrate http://vc.arb-home.de/svn/branches/YOURBRANCH
- now it's mandatory to delete the reintegrated branch (otherwise you'll run into future problems). See section below for howto. You may instantly re-create YOURBRANCH if intended.
Single merges
Single merges are not recommended in general. Normal workflow should be:
- branch
- change+regular updates from parent
- reintegrate
Anyway if you need it for some reason:
- merging from YOURBRANCH to trunk
- cd into a checkout of trunk
svn merge -c CHANGESET http://vc.arb-home.de/svn/branches/YOURBRANCH
- cd into a checkout of trunk
- merging from trunk to YOURBRANCH
- cd into a checkout of YOURBRANCH
svn merge -c CHANGESET http://vc.arb-home.de/svn/trunk
- cd into a checkout of YOURBRANCH
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 http://vc.arb-home.de/svn/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 REVNUM svn:log "new logtext" http://vc.arb-home.de/svn
or to edit in visvn propedit --revprop -r REVNUM --editor-cmd vi http://vc.arb-home.de/svn
- trac has to be resynced afterwards (done frequently by cronjob)
- sometimes trac-svn-sync will be broken by single syncs
- effect: new revisions will no longer show up in trac timeline
- can be fixed using
trac-admin /path repository resync '(default)'
Warning: this will take about ~30 minutes for 17000 revisions on current host
Attachments (1)
-
svn_relocate_2_waltz.pl
(1.8 KB) -
added by westram 13 years ago.
script to relocate old svn+ssh-checkouts to new repository location
Download all attachments as: .zip