chiark
/
gitweb
/
~ianmdlvl
/
dgit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dgit: unpack_playtree_need_cd_work: Make idempotent
[dgit.git]
/
git-debrebase
diff --git
a/git-debrebase
b/git-debrebase
index 5e8a8bb2dc81b979e1e15f95cc5ad744a67da31a..71bf39dc726c1131ab5797a58be2cefaefedebba 100755
(executable)
--- a/
git-debrebase
+++ b/
git-debrebase
@@
-47,7
+47,7
@@
usages:
git-debrebase [<options>] prepush [--prose=...]
git-debrebase [<options>] quick|conclude
git-debrebase [<options>] new-upstream <new-version> [<details ...>]
git-debrebase [<options>] prepush [--prose=...]
git-debrebase [<options>] quick|conclude
git-debrebase [<options>] new-upstream <new-version> [<details ...>]
- git-debrebase [<options>] convert-from-
gbp [<upstream-commitish>]
+ git-debrebase [<options>] convert-from-
* ...
...
See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).
END
...
See git-debrebase(1), git-debrebase(5), dgit-maint-debrebase(7) (in dgit).
END
@@
-144,10
+144,10
@@
sub run_ref_updates_now ($$) {
my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
debugcmd '>|', @upd_cmd;
my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
debugcmd '>|', @upd_cmd;
- open U, "|-", @upd_cmd or confess
$!
;
+ open U, "|-", @upd_cmd or confess
"$!"
;
foreach (@$updates) {
printdebug ">= ", $_, "\n";
foreach (@$updates) {
printdebug ">= ", $_, "\n";
- print U $_, "\n" or confess
$!
;
+ print U $_, "\n" or confess
"$!"
;
}
printdebug ">\$\n";
close U or failedcmd @upd_cmd;
}
printdebug ">\$\n";
close U or failedcmd @upd_cmd;
@@
-611,7
+611,7
@@
sub merge_series ($$$;@) {
if ($any) {
open S, $seriesfile or confess "$seriesfile $!";
while (my $patch = <S>) {
if ($any) {
open S, $seriesfile or confess "$seriesfile $!";
while (my $patch = <S>) {
- chomp $patch or confess
$!
;
+ chomp $patch or confess
"$!"
;
$prereq{$patch} //= {};
foreach my $earlier (@earlier) {
$prereq{$patch}{$earlier}{$s}++ and confess;
$prereq{$patch} //= {};
foreach my $earlier (@earlier) {
$prereq{$patch}{$earlier}{$s}++ and confess;
@@
-708,7
+708,7
@@
sub merge_series ($$$;@) {
};
};
};
};
- open NS, '>', $seriesfile or confess
$!
;
+ open NS, '>', $seriesfile or confess
"$!"
;
while (keys %prereq) {
my $best;
while (keys %prereq) {
my $best;
@@
-723,7
+723,7
@@
sub merge_series ($$$;@) {
$best = $try;
}
printdebug "merge_series series next $best\n";
$best = $try;
}
printdebug "merge_series series next $best\n";
- print NS "$best\n" or confess
$!
;
+ print NS "$best\n" or confess
"$!"
;
delete $prereq{$best};
foreach my $gp (values %prereq) {
delete $gp->{$best};
delete $prereq{$best};
foreach my $gp (values %prereq) {
delete $gp->{$best};
@@
-765,9
+765,9
@@
sub merge_series_patchqueue_convert ($$$) {
my $tree = cmdoutput @git, qw(write-tree);
$commit =~ s{^parent (\S+)$}{parent $build}m or confess;
$commit =~ s{^tree (\S+)$}{tree $tree}m or confess;
my $tree = cmdoutput @git, qw(write-tree);
$commit =~ s{^parent (\S+)$}{parent $build}m or confess;
$commit =~ s{^tree (\S+)$}{tree $tree}m or confess;
- open C, ">", "../mcommit" or confess
$!
;
- print C $commit or confess
$!
;
- close C or confess
$!
;
+ open C, ">", "../mcommit" or confess
"$!"
;
+ print C $commit or confess
"$!"
;
+ close C or confess
"$!"
;
$build = cmdoutput @git, qw(hash-object -w -t commit ../mcommit);
}
$result = $build;
$build = cmdoutput @git, qw(hash-object -w -t commit ../mcommit);
}
$result = $build;
@@
-1586,7
+1586,7
@@
sub walk ($;$$$) {
confess __ "internal error" unless $build eq (pop @processed)->{CommitId};
in_workarea sub {
confess __ "internal error" unless $build eq (pop @processed)->{CommitId};
in_workarea sub {
- mkdir $rd or $!==EEXIST or confess
$!
;
+ mkdir $rd or $!==EEXIST or confess
"$!"
;
my $current_method;
my $want_debian = $build;
my $want_upstream = $build;
my $current_method;
my $want_debian = $build;
my $want_upstream = $build;
@@
-1696,9
+1696,9
@@
sub walk ($;$$$) {
or confess "$ch ?";
}
my $cf = "$rd/m$rewriting";
or confess "$ch ?";
}
my $cf = "$rd/m$rewriting";
- open CD, ">", $cf or confess
$!
;
- print CD $ch, "\n", $cl->{Msg} or confess
$!
;
- close CD or confess
$!
;
+ open CD, ">", $cf or confess
"$!"
;
+ print CD $ch, "\n", $cl->{Msg} or confess
"$!"
;
+ close CD or confess
"$!"
;
my @cmd = (@git, qw(hash-object));
push @cmd, qw(-w) if $rewriting;
push @cmd, qw(-t commit), $cf;
my @cmd = (@git, qw(hash-object));
push @cmd, qw(-w) if $rewriting;
push @cmd, qw(-t commit), $cf;
@@
-1811,7
+1811,7
@@
sub cmd_analyse () {
$old = git_rev_parse 'HEAD';
}
my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
$old = git_rev_parse 'HEAD';
}
my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
- STDOUT->error and confess
$!
;
+ STDOUT->error and confess
"$!"
;
}
sub ffq_check ($;$$) {
}
sub ffq_check ($;$$) {
@@
-1828,7
+1828,7
@@
sub ffq_check ($;$$) {
# normally $currentval should be HEAD
my ($currentval, $ff, $notff) =@_;
# normally $currentval should be HEAD
my ($currentval, $ff, $notff) =@_;
- $ff //= sub { print $_[0] or confess
$!
; };
+ $ff //= sub { print $_[0] or confess
"$!"
; };
$notff //= \&snag;
my ($status, $message, $current, $ffq_prev, $gdrlast)
$notff //= \&snag;
my ($status, $message, $current, $ffq_prev, $gdrlast)
@@
-2008,6
+2008,7
@@
sub upstream_commitish_search ($$) {
sub resolve_upstream_version ($$) {
my ($new_upstream, $upstream_version) = @_;
sub resolve_upstream_version ($$) {
my ($new_upstream, $upstream_version) = @_;
+ my $used = $new_upstream;
if (!defined $new_upstream) {
my @tried;
$new_upstream = upstream_commitish_search $upstream_version, \@tried;
if (!defined $new_upstream) {
my @tried;
$new_upstream = upstream_commitish_search $upstream_version, \@tried;
@@
-2018,10
+2019,12
@@
sub resolve_upstream_version ($$) {
" Check version, and specify upstream commitish explicitly.",
"@tried";
}
" Check version, and specify upstream commitish explicitly.",
"@tried";
}
+ $used = $tried[-1];
}
$new_upstream = git_rev_parse $new_upstream;
}
$new_upstream = git_rev_parse $new_upstream;
- return $new_upstream;
+ return ($new_upstream, $used);
+ # used is a human-readable idea of what we found
}
sub cmd_new_upstream () {
}
sub cmd_new_upstream () {
@@
-2043,7
+2046,8
@@
sub cmd_new_upstream () {
my $new_upstream = shift @ARGV;
my $new_upstream_version = upstreamversion $new_version;
my $new_upstream = shift @ARGV;
my $new_upstream_version = upstreamversion $new_version;
- $new_upstream =
+ my $new_upstream_used;
+ ($new_upstream, $new_upstream_used) =
resolve_upstream_version $new_upstream, $new_upstream_version;
record_ffq_auto();
resolve_upstream_version $new_upstream, $new_upstream_version;
record_ffq_auto();
@@
-2257,7
+2261,7
@@
sub cmd_record_ffq_prev () {
badusage "no arguments allowed" if @ARGV;
my ($status, $msg) = record_ffq_prev_deferred();
if ($status eq 'exists' && $opt_noop_ok) {
badusage "no arguments allowed" if @ARGV;
my ($status, $msg) = record_ffq_prev_deferred();
if ($status eq 'exists' && $opt_noop_ok) {
- print __ "Previous head already recorded\n" or confess
$!
;
+ print __ "Previous head already recorded\n" or confess
"$!"
;
} elsif ($status eq 'deferred') {
run_deferred_updates 'record-ffq-prev';
} else {
} elsif ($status eq 'deferred') {
run_deferred_updates 'record-ffq-prev';
} else {
@@
-2268,13
+2272,13
@@
sub cmd_record_ffq_prev () {
sub cmd_anchor () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
sub cmd_anchor () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
- print "$anchor\n" or confess
$!
;
+ print "$anchor\n" or confess
"$!"
;
}
sub cmd_breakwater () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
}
sub cmd_breakwater () {
badusage __ "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
- print "$bw\n" or confess
$!
;
+ print "$bw\n" or confess
"$!"
;
}
sub cmd_status () {
}
sub cmd_status () {
@@
-2307,7
+2311,7
@@
sub cmd_status () {
my $prcommitinfo = sub {
my ($cid) = @_;
my $prcommitinfo = sub {
my ($cid) = @_;
- flush STDOUT or confess
$!
;
+ flush STDOUT or confess
"$!"
;
runcmd @git, qw(--no-pager log -n1),
'--pretty=format: %h %s%n',
$cid;
runcmd @git, qw(--no-pager log -n1),
'--pretty=format: %h %s%n',
$cid;
@@
-2537,6
+2541,7
@@
sub complete_convert_from ($$$$) {
update_head_checkout $old_head, $new_head, $mrest;
}
update_head_checkout $old_head, $new_head, $mrest;
}
+sub cmd_convert_from_unapplied () { cmd_convert_from_gbp(); }
sub cmd_convert_from_gbp () {
badusage __ "want only 1 optional argument, the upstream git commitish"
unless @ARGV<=1;
sub cmd_convert_from_gbp () {
badusage __ "want only 1 optional argument, the upstream git commitish"
unless @ARGV<=1;
@@
-2548,7
+2553,7
@@
sub cmd_convert_from_gbp () {
my ($upstream_spec) = @ARGV;
my $upstream_version = upstreamversion $version;
my ($upstream_spec) = @ARGV;
my $upstream_version = upstreamversion $version;
- my
$upstream
=
+ my
($upstream, $upstream_used)
=
resolve_upstream_version($upstream_spec, $upstream_version);
my ($old_head, $gdrlastinfo) = begin_convert_from();
resolve_upstream_version($upstream_spec, $upstream_version);
my ($old_head, $gdrlastinfo) = begin_convert_from();
@@
-2558,7
+2563,7
@@
sub cmd_convert_from_gbp () {
runcmd @git, qw(--no-pager diff --stat),
$upstream, $old_head,
qw( -- :!/debian :/);
runcmd @git, qw(--no-pager diff --stat),
$upstream, $old_head,
qw( -- :!/debian :/);
- fail f_ <<END, $upstream_
spec, $upstream_spec
;
+ fail f_ <<END, $upstream_
used, $upstream
;
upstream (%s) and HEAD are not
identical in upstream files. See diffstat above, or run
git diff %s HEAD -- :!/debian :/
upstream (%s) and HEAD are not
identical in upstream files. See diffstat above, or run
git diff %s HEAD -- :!/debian :/
@@
-2575,9
+2580,9
@@
END
if (length $wrong) {
snag 'unexpected-upstream-changes', f_
"history between upstream (%s) and HEAD contains direct changes to upstream files - are you sure this is a gbp (patches-unapplied) branch?",
if (length $wrong) {
snag 'unexpected-upstream-changes', f_
"history between upstream (%s) and HEAD contains direct changes to upstream files - are you sure this is a gbp (patches-unapplied) branch?",
- $upstream;
+ $upstream
_used
;
print STDERR f_ "list expected changes with: %s\n",
print STDERR f_ "list expected changes with: %s\n",
- "git log --stat --ancestry-path $upstream
_spec
..HEAD -- :/ ':!/debian'";
+ "git log --stat --ancestry-path $upstream..HEAD -- :/ ':!/debian'";
}
}
}
}
@@
-2669,7
+2674,7
@@
END
};
complete_convert_from $old_head, $work, $gdrlastinfo, 'convert-from-gbp';
};
complete_convert_from $old_head, $work, $gdrlastinfo, 'convert-from-gbp';
- print f_ <<END, $us or confess
$!
;
+ print f_ <<END, $us or confess
"$!"
;
%s: converted from patched-unapplied (gbp) branch format, OK
END
}
%s: converted from patched-unapplied (gbp) branch format, OK
END
}
@@
-2698,7
+2703,7
@@
sub cmd_convert_to_gbp () {
}
snags_maybe_bail();
update_head_checkout $head, $out, "convert to gbp (v0)";
}
snags_maybe_bail();
update_head_checkout $head, $out, "convert to gbp (v0)";
- print f_ <<END, $us,$us,$us or confess
$!
;
+ print f_ <<END, $us,$us,$us or confess
"$!"
;
%s: converted to git-buildpackage branch format
%s: WARNING: do not now run "git-debrebase" any more
%s: WARNING: doing so would drop all upstream patches!
%s: converted to git-buildpackage branch format
%s: WARNING: do not now run "git-debrebase" any more
%s: WARNING: doing so would drop all upstream patches!
@@
-3025,7
+3030,7
@@
getoptions_main
push @$opt_defaultcmd_interactive, @ARGV;
@ARGV=();
},
push @$opt_defaultcmd_interactive, @ARGV;
@ARGV=();
},
- 'help' => sub { print __ $usage_message or confess
$!
; finish 0; },
+ 'help' => sub { print __ $usage_message or confess
"$!"
; finish 0; },
);
initdebug('git-debrebase ');
);
initdebug('git-debrebase ');