git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] git-svn: fix dcommit clobbering when committing a series of diffs

From
PBPeter Baumann <waste.manager@gmx.de>
Date
Nov 5, 2007, 14:22 UTC
Message-ID
<20071105142254.GA20277@xp.machine.xx>
In-Reply-To
<1194261708-32256-1-git-send-email-normalperson@yhbt.net>
On Mon, Nov 05, 2007 at 03:21:47AM -0800, Eric Wong wrote:
Show 23 quoted lines
> 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@yhbt.net>
> ---
> 
[...]
Show 37 quoted lines
> 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
Show 7 quoted lines
> +	echo hi > life &&
> +	git update-index --add life &&
> +	git commit -m hi-life &&
> +	echo bye >> life &&
> +	git commit -m bye-life life
> +	"
> +
[...] 
Previous: Eric WongNext: Eric Wong
Message 3 of 4 in “git-svn: fix dcommit clobbering when committing a series of diffs”
  1. 1/2 git-svn: fix dcommit clobbering when committing a series of diffsEric Wong, Nov 5, 2007
  2. 2/2 git-svn: t9114: verify merge commit message in testEric Wong, Nov 5, 2007
  3. Peter BaumannNov 5, 2007
  4. Eric WongNov 5, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.