diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-19 16:44:56 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2018-08-19 17:46:00 +0100 |
commit | e64f34c55170943aa35bb806700c8ba3e99c50a7 (patch) | |
tree | d45dcff29e6f34aff97982363820b1ebff83dfeb /git-debrebase | |
parent | b39329c0ead53a3f51ed7c7fa946a79ff9463f18 (diff) |
git-debrebase: Actually avoid read-tree in walk when not rewriting
See
git-debrebase: Prep for avoid read-tree in walk when not rewriting
for the motivation.
Here we try to check that the commit we would make, if we were
actually calling read-tree, write-tree and hash-object, would be
identical to the one we are reusing.
In particular, we check that the upstream files, and the debian/
directory, have the contents we would feed to read-tree. And we check
that the parent list is the same.
With these checks this new algorithm is, I think, safe enough to just
use always. So set $opt_careful to 0. We will abolish this
variable in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-x | git-debrebase | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/git-debrebase b/git-debrebase index d04f2a3..c240d88 100755 --- a/git-debrebase +++ b/git-debrebase @@ -53,7 +53,7 @@ END our ($opt_force, $opt_careful, $opt_noop_ok, @opt_anchors); our ($opt_defaultcmd_interactive); -$opt_careful = 1; +$opt_careful = 0; our $us = qw(git-debrebase); @@ -1612,6 +1612,18 @@ sub walk ($;$$$) { $build = $newcommit; } else { $build = $cl->{CommitId}; + trees_diff_walk "$want_upstream:", "$build:", sub { + my ($n) = @_; + no warnings qw(exiting); + next if $n eq 'debian/'; + confess "mismatch @_ ?"; + }; + trees_diff_walk "$want_debian:debian", "$build:debian", sub { + confess "mismatch @_ ?"; + }; + my @old_parents = map { $_->{CommitId} } @{ $cl->{Parents} }; + confess "mismatch @parents != @old_parents ?" + unless "@parents" eq "@old_parents"; } if (grep { $method eq $_ } qw(DgitImportUpstreamUpdate)) { $last_anchor = $cur; |