Skip to content

Commit

Permalink
git svn: the branch command no longer needs the full path
Browse files Browse the repository at this point in the history
This was introduced in 0b2af45
("Fix branch detection when repository root is inaccessible")
but reintroduced in the previous commit.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Eric Wong committed Jul 25, 2009
1 parent 6b48829 commit eaa14ff
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
19 changes: 16 additions & 3 deletions git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -666,9 +666,22 @@ sub cmd_branch {
}
}
unless (defined $glob) {
die "Unknown ",
$_tag ? "tag" : "branch",
" destination $_branch_dest\n";
my $dest_re = qr/\b\Q$_branch_dest\E\b/;
foreach my $g (@{$allglobs}) {
$g->{path}->{left} =~ /$dest_re/ or next;
if (defined $glob) {
die "Ambiguous destination: ",
$_branch_dest, "\nmatches both '",
$glob->{path}->{left}, "' and '",
$g->{path}->{left}, "'\n";
}
$glob = $g;
}
unless (defined $glob) {
die "Unknown ",
$_tag ? "tag" : "branch",
" destination $_branch_dest\n";
}
}
}
my ($lft, $rgt) = @{ $glob->{path} }{qw/left right/};
Expand Down
8 changes: 4 additions & 4 deletions t/t9141-git-svn-multiple-branches.sh
Original file line number Diff line number Diff line change
Expand Up @@ -99,22 +99,22 @@ test_expect_success 'Multiple branch or tag paths require -d' '

test_expect_success 'create new branches and tags' '
( cd git_project &&
git svn branch -m "New branch 1" -d project/b_one New1 ) &&
git svn branch -m "New branch 1" -d b_one New1 ) &&
( cd svn_project &&
svn_cmd up && test -e b_one/New1/a.file ) &&
( cd git_project &&
git svn branch -m "New branch 2" -d project/b_two New2 ) &&
git svn branch -m "New branch 2" -d b_two New2 ) &&
( cd svn_project &&
svn_cmd up && test -e b_two/New2/a.file ) &&
( cd git_project &&
git svn branch -t -m "New tag 1" -d project/tags_A Tag1 ) &&
git svn branch -t -m "New tag 1" -d tags_A Tag1 ) &&
( cd svn_project &&
svn_cmd up && test -e tags_A/Tag1/a.file ) &&
( cd git_project &&
git svn tag -m "New tag 2" -d project/tags_B Tag2 ) &&
git svn tag -m "New tag 2" -d tags_B Tag2 ) &&
( cd svn_project &&
svn_cmd up && test -e tags_B/Tag2/a.file )
'
Expand Down

0 comments on commit eaa14ff

Please sign in to comment.