summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-12-08 04:49:38 (GMT)
committerEric Wong <normalperson@yhbt.net>2009-12-08 04:49:44 (GMT)
commitf9ad77a739c0d012ee58b64eda2d7ec0d4e1df9d (patch)
tree6f2e3a4aa9ba13e5c74f2b838c4031721fc606e6
parent33f2a3108eeacbd937021470aa6e67c01ceec960 (diff)
downloadgit-f9ad77a739c0d012ee58b64eda2d7ec0d4e1df9d.zip
git-f9ad77a739c0d012ee58b64eda2d7ec0d4e1df9d.tar.gz
git-f9ad77a739c0d012ee58b64eda2d7ec0d4e1df9d.tar.bz2
git svn: log removals of empty directories
This also adds a test case for: "git svn: Don't create empty directories whose parents were deleted" which was the reason we found this bug in the first place. Signed-off-by: Eric Wong <normalperson@yhbt.net>
-rwxr-xr-xgit-svn.perl2
-rwxr-xr-xt/t9146-git-svn-empty-dirs.sh10
2 files changed, 11 insertions, 1 deletions
diff --git a/git-svn.perl b/git-svn.perl
index bdd1f96..5a52068 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3891,11 +3891,11 @@ sub delete_entry {
}
print "\tD\t$gpath/\n" unless $::_q;
command_close_pipe($ls, $ctx);
- $self->{empty}->{$path} = 0
} else {
$self->{gii}->remove($gpath);
print "\tD\t$gpath\n" unless $::_q;
}
+ $self->{empty}->{$path} = 0;
undef;
}
diff --git a/t/t9146-git-svn-empty-dirs.sh b/t/t9146-git-svn-empty-dirs.sh
index 70c52c1..9b8d046 100755
--- a/t/t9146-git-svn-empty-dirs.sh
+++ b/t/t9146-git-svn-empty-dirs.sh
@@ -105,4 +105,14 @@ test_expect_success 'empty directories in trunk exist' '
)
'
+test_expect_success 'remove a top-level directory from svn' '
+ svn_cmd rm -m "remove d" "$svnrepo"/d
+'
+
+test_expect_success 'removed top-level directory does not exist' '
+ git svn clone "$svnrepo" removed &&
+ test ! -e removed/d
+
+'
+
test_done