Skip to content

Commit

Permalink
git-svn: fix some potential bugs with --follow-parent
Browse files Browse the repository at this point in the history
When using do_switch:

  We only need to ensure the index is clean and set to that of the
  parent tree) we rely on being able to reconstruct full files
  with deltas transferred over the network.

When using do_update:

  We may safely unlink the index if we are fetching an entire
  new tree with do_update.  Having an old index (from a
  previously deleted/abandoned directory) around can cause
  irrelevant files to be mistakenly kept.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Eric Wong committed Feb 23, 2007
1 parent e2c475d commit 2e5e248
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -1675,9 +1675,9 @@ sub find_parent_branch {
}
if (defined $r0 && defined $parent) {
print STDERR "Found branch parent: ($self->{ref_id}) $parent\n";
$self->assert_index_clean($parent);
my $ed;
if ($self->ra->can_do_switch) {
$self->assert_index_clean($parent);
print STDERR "Following parent with do_switch\n";
# do_switch works with svn/trunk >= r22312, but that
# is not included with SVN 1.4.3 (the latest version
Expand Down Expand Up @@ -2932,6 +2932,10 @@ sub gs_do_update {
my $new = ($rev_a == $rev_b);
my $path = $gs->{path};

if ($new && -e $gs->{index}) {
unlink $gs->{index} or die
"Couldn't unlink index: $gs->{index}: $!\n";
}
my $pool = SVN::Pool->new;
$editor->set_path_strip($path);
my (@pc) = split m#/#, $path;
Expand Down

0 comments on commit 2e5e248

Please sign in to comment.