From e094da2333bf0f71953b8031940f5f963559428b Mon Sep 17 00:00:00 2001 From: Tony Duckles Date: Sat, 24 Mar 2012 23:59:01 -0500 Subject: [PATCH] README updates --- README.mkd | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/README.mkd b/README.mkd index 3395dc7..e385492 100644 --- a/README.mkd +++ b/README.mkd @@ -43,7 +43,77 @@ over standard `http://`, `ssh://`, etc. methods. Usage ----- -See `svn2svn.py --help` +See `svn2svn.py --help`: + + $ ./svn2svn.py --help + svn2svn, version 1.4.0 + + + Usage: svn2svn.py [OPTIONS] source_url target_url + + Replicate (replay) history from one SVN repository to another. Maintain + logical ancestry wherever possible, so that 'svn log' on the replayed repo + will correctly follow file/folder renames. + + Examples: + Create a copy of only /trunk from source repo, starting at r5000 + $ svnadmin create /svn/target + $ svn mkdir -m 'Add trunk' file:///svn/target/trunk + $ svn2svn -av -r 5000 http://server/source/trunk file:///svn/target/trunk + 1. The target_url will be checked-out to ./_wc_target + 2. The first commit to http://server/source/trunk at/after r5000 will be + exported & added into _wc_target + 3. All revisions affecting http://server/source/trunk (starting at r5000) + will be replayed to _wc_target. Any add/copy/move/replaces that are + copy-from'd some path outside of /trunk (e.g. files renamed on a + /branch and branch was merged into /trunk) will correctly maintain + logical ancestry where possible. + + Use continue-mode (-c) to pick-up where the last run left-off + $ svn2svn -avc http://server/source/trunk file:///svn/target/trunk + 1. The target_url will be checked-out to ./_wc_target, if not already + checked-out + 2. All new revisions affecting http://server/source/trunk starting from + the last replayed revision to file:///svn/target/trunk (based on the + svn2svn:* revprops) will be replayed to _wc_target, maintaining all + logical ancestry where possible. + + Options: + --version show program's version number and exit + -h, --help show this help message and exit + -v, --verbose enable additional output (use -vv or -vvv for more) + -a, --archive archive/mirror mode; same as -UDP (see REQUIRE's below) + maintain same commit author, same commit time, and + file/dir properties + -U, --keep-author maintain same commit authors (svn:author) as source + (REQUIRES 'pre-revprop-change' hook script to allow + 'svn:author' changes) + -D, --keep-date maintain same commit time (svn:date) as source + (REQUIRES 'pre-revprop-change' hook script to allow + 'svn:date' changes) + -P, --keep-prop maintain same file/dir SVN properties as source + -R, --keep-revnum maintain same rev #'s as source. creates placeholder + target revisions (by modifying a 'svn2svn:keep-revnum' + property at the root of the target repo) + -c, --continue continue from last source commit to target (based on + svn2svn:* revprops) + -f, --force allow replaying into a non-empty target folder + -r, --revision=ARG revision range to replay from source_url + A revision argument can be one of: + START start rev # (end will be 'HEAD') + START:END start and ending rev #'s + Any revision # formats which SVN understands are + supported, e.g. 'HEAD', '{2010-01-31}', etc. + -u, --log-author append source commit author to replayed commit mesages + -d, --log-date append source commit time to replayed commit messages + -l, --limit=NUM maximum number of source revisions to process + -n, --dry-run process next source revision but don't commit changes to + target working-copy (forces --limit=1) + -x, --verify verify ancestry and content for changed paths in commit + after every target commit or last target commit + -X, --verify-all verify ancestry and content for entire target_url tree + after every target commit or last target commit + --debug enable debugging output (same as -vvv) Side Effects ------------ @@ -58,7 +128,7 @@ Side Effects actions into and where we commit to the target repo. You can safely remove this directory after a run, and the script will do a fresh "svn checkout" (if needed) when starting the next time. - - "`_tmp_wc_target`": This is a temporary folder, which will only be created + - "`_wc_target_tmp`": This is a temporary folder, which will only be created if using `--keep-revnum` mode and it should only exist for brief periods of time. This is where we commit dummy/padding revisions to the target repo, checking out the root folder of the target repo and modifying a -- 2.45.2