Skip to content

Commit

Permalink
git svn: Don't create empty directories whose parents were deleted
Browse files Browse the repository at this point in the history
Commit 6111b93 "git svn: attempt to create empty dirs on clone+rebase"
will create empty directories 'a/b' and 'a/c' if they were previously
created in SVN, even if their parent directory 'a' was deleted.

For example, unhandled.log may contain lines like this:

r32
  +empty_dir: packages/sipb-xen-remctl-auto/sipb-xen-remctl-auto/files/etc/remctl/sipb-xen-auto/acl
  +empty_dir: packages/sipb-xen-remctl-auto/sipb-xen-remctl-auto/files/etc/remctl/sipb-xen-auto/machine.d
  +empty_dir: packages/sipb-xen-remctl-auto/sipb-xen-remctl-auto/files/etc/remctl/sipb-xen-auto/moira-acl
[...]
r314
  -empty_dir: packages/sipb-xen-remctl-auto

[ew: rewrote to be line-wrapped at <= 80-columns]

Reported-by: Evan Broder <broder@mit.edu>
Signed-off-by: Greg Price <price@ksplice.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Greg Price authored and Eric Wong committed Dec 8, 2009
1 parent e9e4c8b commit 33f2a31
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -2748,7 +2748,8 @@ sub mkemptydirs {
} elsif (/^ \+empty_dir: (.+)$/) {
$empty_dirs{$1} = 1;
} elsif (/^ \-empty_dir: (.+)$/) {
delete $empty_dirs{$1};
my @d = grep {m[^\Q$1\E(/|$)]} (keys %empty_dirs);
delete @empty_dirs{@d};
}
}
close $fh;
Expand Down

0 comments on commit 33f2a31

Please sign in to comment.