On Mon, Nov 05, 2007 at 03:21:47AM -0800, Eric Wong wrote: > Our revision number sent to SVN is set to the last revision we > committed if we've made any previous commits in a dcommit > invocation. > > Although our SVN Editor code uses the delta of two (old) trees > to generate information to send upstream, it'll still send > complete resultant files upstream; even if the tree they're > based against is out-of-date. > > The combination of sending a file that does not include the > latest changes, but set with a revision number of a commit we > just made will cause SVN to accept the resultant file even if it > was generated against an old tree. > > More trouble was caused when fixing this because we were > rebasing uncessarily at times. We used git-diff-tree to check > the imported SVN revision against our HEAD, not the last tree we > committed to SVN. The unnecessary rebasing caused merge commits > upstream to SVN to fail. > > Signed-off-by: Eric Wong <normalperson@xxxxxxxx> > --- > [...] > diff --git a/t/t9106-git-svn-dcommit-clobber-series.sh b/t/t9106-git-svn-dcommit-clobber-series.sh > new file mode 100755 > index 0000000..4216a88 > --- /dev/null > +++ b/t/t9106-git-svn-dcommit-clobber-series.sh > @@ -0,0 +1,56 @@ > +#!/bin/sh > +# > +# Copyright (c) 2007 Eric Wong > +test_description='git-svn dcommit clobber series' > +. ./lib-git-svn.sh > + > +test_expect_success 'initialize repo' " > + mkdir import && > + cd import && > + awk 'BEGIN { for (i = 1; i < 64; i++) { print i } }' > file > + svn import -m 'initial' . $svnrepo && > + cd .. && > + git svn init $svnrepo && > + git svn fetch && > + test -e file > + " > + > +test_expect_success '(supposedly) non-conflicting change from SVN' " > + test x\"\`sed -n -e 58p < file\`\" = x58 && > + test x\"\`sed -n -e 61p < file\`\" = x61 && > + svn co $svnrepo tmp && > + cd tmp && > + perl -i -p -e 's/^58\$/5588/' file && > + perl -i -p -e 's/^61\$/6611/' file && > + test x\"\`sed -n -e 58p < file\`\" = x5588 && > + test x\"\`sed -n -e 61p < file\`\" = x6611 && > + svn commit -m '58 => 5588, 61 => 6611' && > + cd .. > + " > + > +test_expect_success 'unrelated some unrelated changes to git' " The first unrelated seems odd here. -Peter > + echo hi > life && > + git update-index --add life && > + git commit -m hi-life && > + echo bye >> life && > + git commit -m bye-life life > + " > + [...] - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html