git-svn: don't allow globs to match regular files
PATCH 1/1 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
---
Junio: this can go in maint
git-svn.perl | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
git-svn.perl +2 -0
@@ -3162,6 +3162,8 @@ sub match_globs { my $p = $1; my $pathname = $g->{path}->full_path($p); next if $exists->{$pathname}; + next if ($self->check_path($pathname, $r) != + $SVN::Node::dir); $exists->{$pathname} = Git::SVN->init( $self->{url}, $pathname, undef, $g->{ref}->full_path($p), 1);
Signature · 1 line
Eric Wong
Quoted 8 lines · Eric Wong
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
It is not clear what this "glob" means to me. Enlightenment?
My cursory reading of the code is that you are grabbing things under branches/ and tags/, expecting each of what you would find there is the whole-tree of a revision, and do not want to see any regular file immediately underneath branches/ and tags/.
Is that what is happening here?
Quoted 7 lines · Junio C Hamano
Quoted 5 lines · Eric Wong
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.
Quoted 5 lines
Quoted 3 lines
Thanks to jrockway on #git for pointing this out.
[1] mistakenly or otherwise, such as a README
It is not clear what this "glob" means to me. Enlightenment?
Basically I can define an [svn-remote] in the config much in the same way that a native git [remote] is defined:
[svn-remote "svn"]
url = svn://svn.debian.org/svn/pkg-glibc branches = glibc-package/branches/*:refs/remotes/* tags = glibc-package/tags/*:refs/remotes/tags/*
Quoted 6 lines
My cursory reading of the code is that you are grabbing things under branches/ and tags/, expecting each of what you would find there is the whole-tree of a revision, and do not want to see any regular file immediately underneath branches/ and tags/.
Is that what is happening here?
Yes.
Signature · 1 line
Eric Wong