From a3c75056dc73661a6cdab180659f52cdb03b357c Mon Sep 17 00:00:00 2001 From: Steven Walter Date: Thu, 2 Sep 2010 18:32:06 -0400 Subject: git-svn: check_cherry_pick should exclude commits already in our history 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. [ew: squashed and cleaned up test case from Steven] Signed-off-by: Steven Walter Acked-by: Eric Wong --- git-svn.perl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'git-svn.perl') diff --git a/git-svn.perl b/git-svn.perl index 9b046b693f..c7c4dcdba5 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3118,9 +3118,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)}; } @@ -3296,6 +3297,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, ); -- cgit v1.3-5-g9baa From 8565a568cdd8604d4b5a00e52c64064a8aebf690 Mon Sep 17 00:00:00 2001 From: Mathias Lafeldt Date: Fri, 24 Sep 2010 00:05:03 +0200 Subject: git-svn: fix processing of decorated commit hashes The function working_head_info() fails to parse commit hashes if they are decorated (i.e. log.decorate is true), causing dcommit, rebase, and other vital git-svn commands to malfunction. This patch disables decorated log output with --no-decorate. [ew: wrapped long line] Signed-off-by: Mathias Lafeldt Acked-by: Eric Wong --- git-svn.perl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'git-svn.perl') diff --git a/git-svn.perl b/git-svn.perl index c7c4dcdba5..18cfb2466d 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1513,7 +1513,8 @@ sub cmt_sha2rev_batch { sub working_head_info { my ($head, $refs) = @_; - my @args = ('log', '--no-color', '--first-parent', '--pretty=medium'); + my @args = qw/log --no-color --no-decorate --first-parent + --pretty=medium/; my ($fh, $ctx) = command_output_pipe(@args, $head); my $hash; my %max; -- cgit v1.3-5-g9baa