Steven Walter <stevenrwalter@xxxxxxxxx> writes: > In most cases of branching, the tree is copied unmodified from the trunk > to the branch. When that is done, we can simply start with the parent's > index and apply the changes on the branch as usual. > > Signed-off-by: Steven Walter <stevenrwalter@xxxxxxxxx> Eric, do you like this one? > --- > git-svn.perl | 18 ++++++++++++++++++ > 1 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/git-svn.perl b/git-svn.perl > index 484b057..2ca2042 100755 > --- a/git-svn.perl > +++ b/git-svn.perl > @@ -1847,6 +1847,13 @@ sub find_parent_branch { > $gs->ra->gs_do_switch($r0, $rev, $gs, > $self->full_url, $ed) > or die "SVN connection failed somewhere...\n"; > + } elsif ($self->trees_match($new_url, $r0, > + $self->full_url, $rev)) { > + $self->tmp_index_do(sub { > + command_noisy('read-tree', $parent); > + }); > + $self->{last_commit} = $parent; > + # Assume copy with no changes > } else { > print STDERR "Following parent with do_update\n"; > $ed = SVN::Git::Fetcher->new($self); > @@ -1859,6 +1866,17 @@ sub find_parent_branch { > return undef; > } > > +sub trees_match { > + my ($self, $url1, $rev1, $url2, $rev2) = @_; > + > + my $ret=1; > + open(my $fh, "svn diff $url1\@$rev1 $url2\@$rev2 |"); > + $ret=0 if (<$fh>); > + close($fh); > + > + return $ret; > +} > + > sub do_fetch { > my ($self, $paths, $rev) = @_; > my $ed; > -- > 1.5.3.1 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html