summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-svn.perl11
-rwxr-xr-xt/t9161-git-svn-mergeinfo-push.sh1
2 files changed, 8 insertions, 4 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 6c7bd95032..705f5ab4c8 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -669,12 +669,14 @@ sub merge_revs_into_hash {
}
sub merge_merge_info {
- my ($mergeinfo_one, $mergeinfo_two) = @_;
+ my ($mergeinfo_one, $mergeinfo_two, $ignore_branch) = @_;
my %result_hash = ();
merge_revs_into_hash(\%result_hash, $mergeinfo_one);
merge_revs_into_hash(\%result_hash, $mergeinfo_two);
+ delete $result_hash{$ignore_branch} if $ignore_branch;
+
my $result = '';
# Sort below is for consistency's sake
for my $branchname (sort keys(%result_hash)) {
@@ -695,6 +697,7 @@ sub populate_merge_info {
my $all_parents_ok = 1;
my $aggregate_mergeinfo = '';
my $rooturl = $gs->repos_root;
+ my ($target_branch) = $gs->full_pushurl =~ /^\Q$rooturl\E(.*)/;
if (defined($rewritten_parent)) {
# Replace first parent with newly-rewritten version
@@ -726,7 +729,8 @@ sub populate_merge_info {
# Merge previous mergeinfo values
$aggregate_mergeinfo =
merge_merge_info($aggregate_mergeinfo,
- $par_mergeinfo, 0);
+ $par_mergeinfo,
+ $target_branch);
next if $parent eq $parents[0]; # Skip first parent
# Add new changes being placed in tree by merge
@@ -769,7 +773,8 @@ sub populate_merge_info {
my $newmergeinfo = "$branchpath:" . join(',', @revsin);
$aggregate_mergeinfo =
merge_merge_info($aggregate_mergeinfo,
- $newmergeinfo, 1);
+ $newmergeinfo,
+ $target_branch);
}
if ($all_parents_ok and $aggregate_mergeinfo) {
return $aggregate_mergeinfo;
diff --git a/t/t9161-git-svn-mergeinfo-push.sh b/t/t9161-git-svn-mergeinfo-push.sh
index 6ef0c0bde3..1eab7015c7 100755
--- a/t/t9161-git-svn-mergeinfo-push.sh
+++ b/t/t9161-git-svn-mergeinfo-push.sh
@@ -88,7 +88,6 @@ test_expect_success 'check reintegration mergeinfo' '
test "$mergeinfo" = "/branches/svnb1:2-4,7-9,13-18
/branches/svnb2:3,8,16-17
/branches/svnb3:4,9
-/branches/svnb4:5-6,10-12
/branches/svnb5:6,11"
'