* [PATCH 2/2] git-svn: fix svn fetch erroneously recreating empty dir placeholder deleted earlier
@ 2013-04-28 8:35 Ilya Basin
0 siblings, 0 replies; only message in thread
From: Ilya Basin @ 2013-04-28 8:35 UTC (permalink / raw)
To: Git mailing list
The Fetcher accumulates deleted paths in an array and doesn't reset the
array on next commit. This causes different results when interrupting
and resuming the fetch.
When --preserve-empty-dirs flag is used, a path in the array can be
erroneously treated as just deleted, although it was deleted in the
previous commit and cause the creation of an empty dir placeholder.
Test script:
(
set -e
rm -rf testrepo.svn testrepo.gitsvn
svnadmin create testrepo.svn
url=file://`pwd`/testrepo.svn
rm -rf testrepo
svn co "$url" testrepo
cd testrepo
mkdir -p foo/bar
echo aaa > foo/bar/fil.txt
svn add foo
svn commit -mx
svn rm -mx "$url/foo/bar/fil.txt"
svn rm -mx "$url/foo/bar"
echo aaa > fil.txt
svn add fil.txt
svn commit -mx
cd ..
rm -rf testrepo.gitsvn && git svn clone --preserve-empty-dirs "$url" testrepo.gitsvn
if [ -e testrepo.gitsvn/foo/bar/.gitignore ]; then
echo "error: testrepo.gitsvn/foo/bar/.gitignore exists"
false
fi
)
---
perl/Git/SVN/Fetcher.pm | 1 +
1 file changed, 1 insertion(+)
diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm
index 4f96076..e658889 100644
--- a/perl/Git/SVN/Fetcher.pm
+++ b/perl/Git/SVN/Fetcher.pm
@@ -19,6 +19,7 @@ sub new {
my ($class, $git_svn, $switch_path) = @_;
my $self = SVN::Delta::Editor->new;
bless $self, $class;
+ @deleted_gpath = ();
if (exists $git_svn->{last_commit}) {
$self->{c} = $git_svn->{last_commit};
$self->{empty_symlinks} =
--
1.8.1.5
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2013-04-28 8:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-28 8:35 [PATCH 2/2] git-svn: fix svn fetch erroneously recreating empty dir placeholder deleted earlier Ilya Basin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).