From: Ian Jackson Date: Fri, 14 Jul 2017 14:10:05 +0000 (+0100) Subject: fixes X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=3a504a751bad69be1ace2d109262503dd813ff50;p=dgit.git fixes --- diff --git a/git-debrebase b/git-debrebase index 982423a6..c4fabe3e 100755 --- a/git-debrebase +++ b/git-debrebase @@ -157,23 +157,23 @@ sub get_differs ($$) { my $differs = 0; my $rundiff = sub { - my ($opts, $sfx, $fn) = @_; - $opts //= [qw(--name-only)]; + my ($opts, $limits, $fn) = @_; my @cmd = (@git, qw(diff-tree -z --no-renames)); push @cmd, @$opts; - push @cmd, "$_:$sfx" foreach $x, $y; + push @cmd, "$_:" foreach $x, $y; + push @cmd, @$limits; my $diffs = cmdoutput @cmd; foreach (split /\0/, $diffs) { $fn->(); } }; - $rundiff->(undef, '', sub { + $rundiff->([qw(--name-only)], [], sub { $differs |= $_ eq 'debian' ? D_DEB : D_UPS; }); if ($differs & D_DEB) { $differs &= ~D_DEB; - $rundiff->(undef, ':debian', sub { - $differs |= $_ eq 'patches' ? D_PAT_OTH : D_DEB; + $rundiff->([qw(--name-only -r)], [qw(debian)], sub { + $differs |= $_ eq m{^debian/patches/} ? D_PAT_OTH : D_DEB; }); die "mysterious debian changes $x..$y" unless $differs & (D_PAT_OTH|D_DEB); @@ -186,11 +186,12 @@ sub get_differs ($$) { $differs |= D_PAT_OTH; no warnings qw(exiting); last; }; - $rundiff->([qw(--name-status)], ':debian/patches', sub { + $rundiff->([qw(--name-status -r)], [qw(debian/patches/)], sub { no warnings qw(exiting); if (!defined $mode) { $mode = $_; next; } + die unless s{^debian/patches/}{}; my $ok; if ($mode eq 'A' && !m/(?:^|\.)series$/s) { $ok = 1; @@ -486,10 +487,11 @@ sub walk ($;$$) { $cur = $p0; next; } elsif ($ty eq 'Pseudomerge') { - print $report " Contributor=$cl->{Contributor}" if $report; + my $contrib = $cl->{Contributor}{CommitId}; + print $report " Contributor=$contrib" if $report; push @pseudomerges, $cl; $rewrite_from_here->(); - $cur = $ty->{Contributor}; + $cur = $contrib; next; } elsif ($ty eq 'BreakwaterUpstreamMerge') { $build_start->("PreviousBreakwater", $cur);