summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgit-svn.perl12
-rwxr-xr-xt/t9151-svn-mergeinfo.sh2
2 files changed, 4 insertions, 10 deletions
diff --git a/git-svn.perl b/git-svn.perl
index 1e106f0..a4a45ef 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3015,14 +3015,8 @@ sub lookup_svn_merge {
for my $range ( @ranges ) {
my ($bottom, $top) = split "-", $range;
$top ||= $bottom;
- my $bottom_commit =
- $gs->rev_map_get($bottom, $uuid) ||
- $gs->rev_map_get($bottom+1, $uuid);
- my $top_commit;
- for (; !$top_commit && $top >= $bottom; --$top) {
- $top_commit =
- $gs->rev_map_get($top, $uuid);
- }
+ my $bottom_commit = $gs->find_rev_after( $bottom, 1, $top );
+ my $top_commit = $gs->find_rev_before( $top, 1, $bottom );
unless ($top_commit and $bottom_commit) {
warn "W:unknown path/rev in svn:mergeinfo "
@@ -3031,7 +3025,7 @@ sub lookup_svn_merge {
}
push @merged_commit_ranges,
- "$bottom_commit..$top_commit";
+ "$bottom_commit^..$top_commit";
if ( !defined $tip or $top > $tip ) {
$tip = $top;
diff --git a/t/t9151-svn-mergeinfo.sh b/t/t9151-svn-mergeinfo.sh
index dc3478f..f6e00ea 100755
--- a/t/t9151-svn-mergeinfo.sh
+++ b/t/t9151-svn-mergeinfo.sh
@@ -33,7 +33,7 @@ test_expect_success 'svn non-merge merge commits did not become git merge commit
[ -z "$bad_non_merges" ]
'
-test_expect_failure 'everything got merged in the end' '
+test_expect_success 'everything got merged in the end' '
unmerged=$(git rev-list --all --not master)
[ -z "$unmerged" ]
'