Fortunately shell scripts aren't really white-space sensitive, so I've just pasted it inline.
> Just a reminder, you always have the option to use svnsync + 'svnadmin dump' > instead of 'svnrdump dump'. The more serious of the two bugs are on the svnrdump *load* side; svnsync doesn't help with that (because it expects a clean repo, and it expects more access than I have to the destination repo.) I use svnrdump dump here just to minimize the tools involved in the reduction case; if I use "svnadmin dump" with the same options, svnrdump load fails the same way. #!/bin/sh -xe PATH=$HOME/tmp/maverick.chroot/tmp/svnrdump/bin:$PATH svn --version svnrdump --version TMPDIR=/dev/shm REPO1_DIR=$TMPDIR/repo1 REPO1=file:////$REPO1_DIR REPO2_DIR=$TMPDIR/repo2 REPO2=file:////$REPO2_DIR rm -rf $REPO1_DIR $REPO2_DIR # set up repo1 svnadmin create $REPO1_DIR WORK=$(mktemp -d -t svnbug_work.XXXXXXX) echo to clean up: echo rm -rf $WORK svn mkdir -m 'setup dross' --parents $REPO1/trunk/unrelated_project svn co $REPO1/trunk/unrelated_project $WORK cat > $WORK/sample1 <<EOF sample1 EOF cat > $WORK/sample2 <<EOF sample2 EOF svn add $WORK/sample1 svn commit -m 'setup dross file' $WORK/sample1 svn add $WORK/sample2 svn commit -m 'setup dross file' $WORK/sample2 svn mkdir -m 'setup real work' --parents $REPO1/trunk/real_project # record starting rev for what we do want REV=$(svn info $REPO1 | awk '/Revision:/ { print $2 }') rm -rf $WORK svn co $REPO1/trunk/real_project $WORK cat > $WORK/sample1 <<EOF sample1 EOF cat > $WORK/sample2 <<EOF sample2 EOF svn add $WORK/sample1 svn commit -m 'setup real file' $WORK/sample1 svn add $WORK/sample2 svn commit -m 'setup real file' $WORK/sample2 svn mv $WORK/sample1 $WORK/sample3 svn commit -m 'perform a rename' $WORK HEAD=$(svn info $REPO1 | awk '/Revision:/ { print $2 }') # try crossloading svnadmin create $REPO2_DIR svn mkdir -m 'need at least something to load trunk/real_project into' $REPO2/trunk # need to pump the version number up, or we lose on *every* rev? for i in $(seq 1 10); do svn mkdir -m 'dummy' $REPO2/trunk/p$i done (echo '#!/bin/sh'; echo 'echo "you win" ; exit 0') > $REPO2_DIR/hooks/pre-revprop-change chmod +x $REPO2_DIR/hooks/pre-revprop-change # 3:HEAD gives, falsely, "svnrdump: E205000: Unsupported revision specifier used; use only integer values or 'HEAD'" echo $REV = 4 $HEAD = 7 svnrdump dump --incremental -r $REV:$HEAD $REPO1 | svnrdump load $REPO2 On Thu, May 12, 2011 at 4:39 PM, Daniel Shahaf <danie...@elego.de> wrote: > Mark Eichin wrote on Thu, May 12, 2011 at 16:26:56 -0400: >> I haven't looked at the actual code (at this point I may be out of >> time and have to go with convincing people that git-svn's >> approximation is good enough) > > Just a reminder, you always have the option to use svnsync + 'svnadmin dump' > instead of 'svnrdump dump'. > >> but since I'd actually managed to narrow >> it down to a clean test case that didn't involve any of the >> dump-mangling I'm doing for the actual task, I figured it best to get >> that out there so people closer to the code can give it a try. > > Thanks for the report; looking forward to see the concrete details (that > script which our mailing list software killed). > -- _Mark_ <eic...@thok.org> <eic...@gmail.com>