git svn: log removals of empty directories
authorEric Wong <normalperson@yhbt.net>
Tue, 8 Dec 2009 04:49:38 +0000 (20:49 -0800)
committerEric Wong <normalperson@yhbt.net>
Tue, 8 Dec 2009 04:49:44 +0000 (20:49 -0800)
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>
git-svn.perl
t/t9146-git-svn-empty-dirs.sh

index bdd1f966c37cc3454bfcbd0968146dbd73578717..5a52068b129f6ab5daa76dc4da57c2e2fe2d8591 100755 (executable)
@@ -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;
 }
 
index 70c52c1f9754934f1f868f998f3c007696799787..9b8d0463fad6dbc2fb3c56c94033269a11404f35 100755 (executable)
@@ -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