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: call setup_sigwarn
[dgit.git]
/
git-debrebase
diff --git
a/git-debrebase
b/git-debrebase
index e73526e9e6207606df78647aa5b902e9580175da..5d1e9c3dc99bf16ffa3605c1e999303a15e28770 100755
(executable)
--- a/
git-debrebase
+++ b/
git-debrebase
@@
-104,14
+104,15
@@
use strict;
use strict;
+use Debian::Dgit qw(:DEFAULT :playground);
+setup_sigwarn();
+
use Memoize;
use Carp;
use POSIX;
use Data::Dumper;
use Getopt::Long qw(:config posix_default gnu_compat bundling);
use Memoize;
use Carp;
use POSIX;
use Data::Dumper;
use Getopt::Long qw(:config posix_default gnu_compat bundling);
-use Debian::Dgit qw(:DEFAULT :playground);
-
sub badusage ($) {
my ($m) = @_;
die "bad usage: $m\n";
sub badusage ($) {
my ($m) = @_;
die "bad usage: $m\n";
@@
-724,7
+725,7
@@
sub cmd_analyse () {
}
sub cmd_downstream_rebase_launder_v0 () {
}
sub cmd_downstream_rebase_launder_v0 () {
- badusage "needs 1 argument, the baseline" unless @ARGV=
0
;
+ badusage "needs 1 argument, the baseline" unless @ARGV=
=1
;
my ($base) = @ARGV;
$base = git_rev_parse $base;
my $old_head = get_head();
my ($base) = @ARGV;
$base = git_rev_parse $base;
my $old_head = get_head();
@@
-732,24
+733,25
@@
sub cmd_downstream_rebase_launder_v0 () {
my $topmost_keep;
for (;;) {
if ($current eq $base) {
my $topmost_keep;
for (;;) {
if ($current eq $base) {
- $topm
u
st_keep //= $current;
- print "
$current BASE: stopping
\n";
+ $topm
o
st_keep //= $current;
+ print "
$current BASE stop
\n";
last;
}
my $cl = classify $current;
print " $current $cl->{Type}";
my $keep = 0;
my $p0 = $cl->{Parents}[0]{CommitId};
last;
}
my $cl = classify $current;
print " $current $cl->{Type}";
my $keep = 0;
my $p0 = $cl->{Parents}[0]{CommitId};
+ my $next;
if ($cl->{Type} eq 'Pseudomerge') {
if ($cl->{Type} eq 'Pseudomerge') {
- $current = $cl->{Contributor}{CommitId};
print " ^".($cl->{Contributor}{Ix}+1);
print " ^".($cl->{Contributor}{Ix}+1);
+ $next = $cl->{Contributor}{CommitId};
} elsif ($cl->{Type} eq 'AddPatches' or
$cl->{Type} eq 'Changelog') {
print " strip";
} elsif ($cl->{Type} eq 'AddPatches' or
$cl->{Type} eq 'Changelog') {
print " strip";
- $
curren
t = $p0;
+ $
nex
t = $p0;
} else {
print " keep";
} else {
print " keep";
- $
curren
t = $p0;
+ $
nex
t = $p0;
$keep = 1;
}
print "\n";
$keep = 1;
}
print "\n";
@@
-757,14
+759,17
@@
sub cmd_downstream_rebase_launder_v0 () {
$topmost_keep //= $current;
} else {
die "to-be stripped changes not on top of the branch\n"
$topmost_keep //= $current;
} else {
die "to-be stripped changes not on top of the branch\n"
- if $topmost_
unstripped
;
+ if $topmost_
keep
;
}
}
+ $current = $next;
}
if ($topmost_keep eq $old_head) {
print "unchanged\n";
} else {
print "updating to $topmost_keep\n";
}
if ($topmost_keep eq $old_head) {
print "unchanged\n";
} else {
print "updating to $topmost_keep\n";
- update_head $old_head, $topmost_keep, 'downstream-rebase-launder-v0';
+ update_head_checkout
+ $old_head, $topmost_keep,
+ 'downstream-rebase-launder-v0';
}
}
}
}