Show 42 quoted lines
> ---
> 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