From: Eric Wong Date: Thu, 02 Sep 2010 21:47:55 GMT Subject: Re: [PATCH] git-svn: check_cherry_pick should exclude commits already in our history Message-ID: <20100902214707.GA2761@dcvr.yhbt.net> In-Reply-To: <1283446008-10858-1-git-send-email-stevenrwalter@gmail.com> Steven Walter wrote: > From: Steven Walter > > The merge-base between @$parents and $merge_tip may have been reached > through a merge commit. This means that some commits that are ancestors > of @$parents will not be ancestors of $merge_base. The mergeinfo > property will not list commits that are ancestors of @$parents, so we > need to explicitly exclude them. Thanks Steven, looks reasonable to me. Sign-off? Sam: any objections? Acked-by: Eric Wong > --- > git-svn.perl | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/git-svn.perl b/git-svn.perl > index 7a72f75..70edf80 100755 > --- a/git-svn.perl > +++ b/git-svn.perl > @@ -3087,9 +3087,10 @@ sub _rev_list { > sub check_cherry_pick { > my $base = shift; > my $tip = shift; > + my $parents = shift; > my @ranges = @_; > my %commits = map { $_ => 1 } > - _rev_list("--no-merges", $tip, "--not", $base); > + _rev_list("--no-merges", $tip, "--not", $base, @$parents); > for my $range ( @ranges ) { > delete @commits{_rev_list($range)}; > } > @@ -3249,6 +3250,7 @@ sub find_extra_svn_parents { > # double check that there are no missing non-merge commits > my (@incomplete) = check_cherry_pick( > $merge_base, $merge_tip, > + $parents, > @$ranges, > ); > > --