1. Stefan Saasen
  2. git


Eric Wong  committed 0c1ec5a

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>

  • Participants
  • Parent commits 1401f46
  • Branches master

Comments (0)

Files changed (2)

File Documentation/RelNotes-

View file
  • Ignore whitespace
   - git-svn dcommit and rebase was confused by patches that were
     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.

File git-svn.perl

View file
  • Ignore whitespace
 			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);