From: Sam Vilain Date: Wed, 21 Apr 2010 20:07:50 GMT Subject: Re: [PATCH/RFC 2/2] git-svn: Don't allow missing commit parent to stop git-svn Message-ID: <1271880470.20208.47.camel@denix> In-Reply-To: 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... Sam