# [PATCH] git-svn: don't allow globs to match regular files

3 messages from 2007-04-18 to 2007-04-18. Participants: Eric Wong, Junio C Hamano.
Thread: https://gitlist.dev/t/7723

## Eric Wong, 2007-04-18 07:17

Subject: [PATCH] git-svn: don't allow globs to match regular files
Message-ID: <20070418071733.GA10627@muzzle>
URL: https://gitlist.dev/e/20070418071733.GA10627%40muzzle

```
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>
---

 Junio: this can go in maint

 git-svn.perl |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index 4d3c453..efc4c88 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -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);
-- 
Eric Wong

```

## Junio C Hamano, 2007-04-18 07:45

Subject: Re: [PATCH] git-svn: don't allow globs to match regular files
Message-ID: <7v3b2yjfcw.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v3b2yjfcw.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20070418071733.GA10627@muzzle>

```
Eric Wong <normalperson@yhbt.net> writes:

> 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?

```

## Eric Wong, 2007-04-18 07:53

Subject: Re: [PATCH] git-svn: don't allow globs to match regular files
Message-ID: <20070418075353.GA2758@hand.yhbt.net>
URL: https://gitlist.dev/e/20070418075353.GA2758%40hand.yhbt.net
In-Reply-To: <7v3b2yjfcw.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> wrote:
> Eric Wong <normalperson@yhbt.net> writes:
> 
> > 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?

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/*

> 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. 

-- 
Eric Wong

```
