From: Michael Olson Date: Wed, 21 Apr 2010 21:17:13 GMT Subject: Re: [PATCH/RFC 2/2] git-svn: Don't allow missing commit parent to stop git-svn Message-ID: In-Reply-To: <1271880470.20208.47.camel@denix> On Wed, Apr 21, 2010 at 1:07 PM, Sam Vilain wrote: > On Tue, 2010-04-20 at 14:30 -0700, Michael Olson wrote: >> Instead, fall back to assuming that the incoming merge is a bunch of >> cherry-picks and ignore it. >> >> Signed-off-by: Michael W. Olson >> --- >>  git-svn.perl |    2 +- >>  1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/git-svn.perl b/git-svn.perl >> index 0e1feb3..1a53709 100755 >> --- a/git-svn.perl >> +++ b/git-svn.perl >> @@ -3110,7 +3110,7 @@ sub check_cherry_pick { >>       my %commits = map { $_ => 1 } >>               _rev_list("--no-merges", $tip, "--not", $base); >>       for my $range ( @ranges ) { >> -             delete @commits{_rev_list($range)}; >> +             eval { delete @commits{_rev_list($range)} }; >>       } >>       for my $commit (keys %commits) { >>               if (has_no_changes($commit)) { > > If the _rev_list here fails, it means it was passed in a bad range. > This means that the calling code somehow ends up with a commit ID > which doesn't exist.  It's normally better to detect errors when > they happen, not deeper into other functions when they break things... Interestingly, I see people reporting the same problem in the thread "git svn clone of subversion's own code failing". So it's not just related to patch 1/2 of this series. At least that thread has a public-facing repo so the problem should be easier to reproduce for a real fix. -- Michael Olson | http://mwolson.org/