git-svn: don't allow globs to match regular files
git only tracks the histories of full directories, not that of individual files. Sometimes, SVN users will place[1] a regular file in the directory designated for subdirectories of branches or tags. Thanks to jrockway on #git for pointing this out. [1] mistakenly or otherwise, such as a README Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
1401f46bb4
commit
0c1ec5a1f7
@ -59,3 +59,7 @@ Fixes since v1.5.1
|
|||||||
|
|
||||||
- git-svn dcommit and rebase was confused by patches that were
|
- git-svn dcommit and rebase was confused by patches that were
|
||||||
merged from another branch that is managed by git-svn.
|
merged from another branch that is managed by git-svn.
|
||||||
|
|
||||||
|
- git-svn used to get confused when globbing remote branch/tag
|
||||||
|
spec (e.g. "branches = proj/branches/*:refs/remotes/origin/*")
|
||||||
|
is used and there was a plain file that matched the glob.
|
||||||
|
@ -3162,6 +3162,8 @@ sub match_globs {
|
|||||||
my $p = $1;
|
my $p = $1;
|
||||||
my $pathname = $g->{path}->full_path($p);
|
my $pathname = $g->{path}->full_path($p);
|
||||||
next if $exists->{$pathname};
|
next if $exists->{$pathname};
|
||||||
|
next if ($self->check_path($pathname, $r) !=
|
||||||
|
$SVN::Node::dir);
|
||||||
$exists->{$pathname} = Git::SVN->init(
|
$exists->{$pathname} = Git::SVN->init(
|
||||||
$self->{url}, $pathname, undef,
|
$self->{url}, $pathname, undef,
|
||||||
$g->{ref}->full_path($p), 1);
|
$g->{ref}->full_path($p), 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user