Re: [PATCH/RFC 2/2] git-svn: Don't allow missing commit parent to stop git-svn
- From
Sam Vilain <sam@vilain.net>
- Date
- Apr 21, 2010, 20:07 UTC
- Message-ID
- <1271880470.20208.47.camel@denix>
- In-Reply-To
- <j2wc8b3bef91004201430ie371be83kee0e3e4c35ab9c9e@mail.gmail.com>
On Tue, 2010-04-20 at 14:30 -0700, Michael Olson wrote:
Show 21 quoted lines
> Instead, fall back to assuming that the incoming merge is a bunch of
> cherry-picks and ignore it.
>
> Signed-off-by: Michael W. Olson <mwolson@gnu.org>
> ---
> 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