summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog1
-rwxr-xr-xgit-debrebase14
2 files changed, 14 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index f678131..58b934e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ dgit (6.7~) unstable; urgency=medium
* git-debrebase: scrap works properly when it does only rebase --abort.
* dgit(1): Encourage --overwrite rather than --overwrite=version.
* test suite: unset GIT_EDITOR, so it works if user has that set.
+ * git-debrebase: Improve laundry performance. Closes:#905995.
--
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;