chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git-debrebase: be properly selective about StartRewrite
[dgit.git]
/
git-debrebase
diff --git
a/git-debrebase
b/git-debrebase
index bc98756f514a4e0b786329d20ef00e4d38a774d1..93bf46b4f57b87cca420a26308b07f36c9ec8e26 100755
(executable)
--- a/
git-debrebase
+++ b/
git-debrebase
@@
-29,8
+29,8
@@
# git-debrebase [<options> --] [<git-rebase options...>]
# git-debrebase [<options>] analyse
# git-debrebase [<options>] breakwater # prints breakwater tip only
# git-debrebase [<options> --] [<git-rebase options...>]
# git-debrebase [<options>] analyse
# git-debrebase [<options>] breakwater # prints breakwater tip only
-# git-debrebase [<options>] launder # prints breakwater tip etc.
# git-debrebase [<options>] stitch [--prose=<for commit message>]
# git-debrebase [<options>] stitch [--prose=<for commit message>]
+# git-debrebase [<options>] launder-v0 # prints breakwater tip etc.
# git-debrebase [<options>] downstream-rebase-launder-v0 # experimental
#
# git-debrebase [<options>] convert-from-gbp [<upstream-git-rev>]
# git-debrebase [<options>] downstream-rebase-launder-v0 # experimental
#
# git-debrebase [<options>] convert-from-gbp [<upstream-git-rev>]
@@
-572,8
+572,9
@@
sub walk ($;$$) {
return (Msg => $ms);
};
my $rewrite_from_here = sub {
return (Msg => $ms);
};
my $rewrite_from_here = sub {
+ my ($cl) = @_;
my $sp_cl = { SpecialMethod => 'StartRewrite' };
my $sp_cl = { SpecialMethod => 'StartRewrite' };
- push @
brw_
cl, $sp_cl;
+ push @
$
cl, $sp_cl;
push @processed, $sp_cl;
};
my $cur = $input;
push @processed, $sp_cl;
};
my $cur = $input;
@@
-623,7
+624,7
@@
sub walk ($;$$) {
my $p0 = @{ $cl->{Parents} }==1 ? $cl->{Parents}[0]{CommitId} : undef;
if ($ty eq 'AddPatches') {
$cur = $p0;
my $p0 = @{ $cl->{Parents} }==1 ? $cl->{Parents}[0]{CommitId} : undef;
if ($ty eq 'AddPatches') {
$cur = $p0;
- $rewrite_from_here->();
+ $rewrite_from_here->(
\@upp_cl
);
next;
} elsif ($ty eq 'Packaging' or $ty eq 'Changelog') {
push @brw_cl, $cl;
next;
} elsif ($ty eq 'Packaging' or $ty eq 'Changelog') {
push @brw_cl, $cl;
@@
-644,14
+645,14
@@
sub walk ($;$$) {
};
$queue->(\@brw_cl, "debian");
$queue->(\@upp_cl, "upstream");
};
$queue->(\@brw_cl, "debian");
$queue->(\@upp_cl, "upstream");
- $rewrite_from_here->();
+ $rewrite_from_here->(
\@brw_cl
);
$cur = $p0;
next;
} elsif ($ty eq 'Pseudomerge') {
my $contrib = $cl->{Contributor}{CommitId};
print $report " Contributor=$contrib" if $report;
push @pseudomerges, $cl;
$cur = $p0;
next;
} elsif ($ty eq 'Pseudomerge') {
my $contrib = $cl->{Contributor}{CommitId};
print $report " Contributor=$contrib" if $report;
push @pseudomerges, $cl;
- $rewrite_from_here->();
+ $rewrite_from_here->(
\@upp_cl
);
$cur = $contrib;
next;
} elsif ($ty eq 'Anchor') {
$cur = $contrib;
next;
} elsif ($ty eq 'Anchor') {
@@
-700,7
+701,7
@@
sub walk ($;$$) {
" anchor")
};
$prline->(" Import");
" anchor")
};
$prline->(" Import");
- $rewrite_from_here->();
+ $rewrite_from_here->(
\@brw_cl
);
$upp_limit //= $#upp_cl; # further, deeper, patches discarded
$cur = $ovwr;
next;
$upp_limit //= $#upp_cl; # further, deeper, patches discarded
$cur = $ovwr;
next;
@@
-857,8
+858,8
@@
sub update_head_postlaunder ($$$) {
runcmd @git, qw(rm --quiet --ignore-unmatch -rf debian/patches);
}
runcmd @git, qw(rm --quiet --ignore-unmatch -rf debian/patches);
}
-sub cmd_launder () {
- badusage "no arguments to launder allowed" if @ARGV;
+sub cmd_launder
_v0
() {
+ badusage "no arguments to launder
-v0
allowed" if @ARGV;
my $old = get_head();
my ($tip,$breakwater,$last_anchor) = walk $old;
update_head_postlaunder $old, $tip, 'launder';
my $old = get_head();
my ($tip,$breakwater,$last_anchor) = walk $old;
update_head_postlaunder $old, $tip, 'launder';