summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-10-02 13:34:36 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-10-02 13:40:17 +0100
commit05b0c33bc4b28f2b0e105c9d72dd861a233d0d6e (patch)
treefe157f1070a7a2f3819219b0003eb6a4cdf99fd4
parent9e243b135e3ba9df16299a664c0fc3ff7e138349 (diff)
i18n: git-debrebase: Change a lot of die to confess
These are internal errors or unexpected syscall failures. Printing a stack trace is reasonably helpful there. (Also, some of them are in the experimental merge resolution code.) Audited with i18n-diff-auditor; reviewed one questionable change. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rwxr-xr-xgit-debrebase69
1 files changed, 35 insertions, 34 deletions
diff --git a/git-debrebase b/git-debrebase
index 645b072..39f79cd 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -105,7 +105,7 @@ sub dd ($) {
sub get_commit ($) {
my ($objid) = @_;
my $data = (git_cat_file $objid, 'commit');
- $data =~ m/(?<=\n)\n/ or die "$objid ($data) ?";
+ $data =~ m/(?<=\n)\n/ or confess "$objid ($data) ?";
return ($`,$');
}
@@ -144,10 +144,10 @@ sub run_ref_updates_now ($$) {
my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
debugcmd '>|', @upd_cmd;
- open U, "|-", @upd_cmd or die $!;
+ open U, "|-", @upd_cmd or confess $!;
foreach (@$updates) {
printdebug ">= ", $_, "\n";
- print U $_, "\n" or die $!;
+ print U $_, "\n" or confess $!;
}
printdebug ">\$\n";
close U or failedcmd @upd_cmd;
@@ -608,17 +608,17 @@ sub merge_series ($$$;@) {
my $any = gbp_pq_export "p-$s", $q->{SeriesBase}, $q->{SeriesTip};
my @earlier;
if ($any) {
- open S, $seriesfile or die "$seriesfile $!";
+ open S, $seriesfile or confess "$seriesfile $!";
while (my $patch = <S>) {
- chomp $patch or die $!;
+ chomp $patch or confess $!;
$prereq{$patch} //= {};
foreach my $earlier (@earlier) {
- $prereq{$patch}{$earlier}{$s}++ and die;
+ $prereq{$patch}{$earlier}{$s}++ and confess;
}
push @earlier, $patch;
- stat "debian/patches/$patch" or die "$patch ?";
+ stat "debian/patches/$patch" or confess "$patch ?";
}
- S->error and die "$seriesfile $!";
+ S->error and confess "$seriesfile $!";
close S;
}
read_tree_upstream $newbase, 1;
@@ -697,7 +697,7 @@ sub merge_series ($$$;@) {
my $authordate = sub {
my ($f) = @_;
$authordate{$f} //= do {
- open PF, "<", "debian/patches/$f" or die "$f $!";
+ open PF, "<", "debian/patches/$f" or confess "$f $!";
while (<PF>) {
return $nodate if m/^$/;
last if s{^Date: }{};
@@ -707,7 +707,7 @@ sub merge_series ($$$;@) {
};
};
- open NS, '>', $seriesfile or die $!;
+ open NS, '>', $seriesfile or confess $!;
while (keys %prereq) {
my $best;
@@ -722,7 +722,7 @@ sub merge_series ($$$;@) {
$best = $try;
}
printdebug "merge_series series next $best\n";
- print NS "$best\n" or die $!;
+ print NS "$best\n" or confess $!;
delete $prereq{$best};
foreach my $gp (values %prereq) {
delete $gp->{$best};
@@ -764,9 +764,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;
- open C, ">", "../mcommit" or die $!;
- print C $commit or die $!;
- close C or die $!;
+ 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;
@@ -837,11 +837,11 @@ sub parsecommit ($;$) {
# $p_ref, if provided, must be [] and is used as a base for Parents
$p_ref //= [];
- die if @$p_ref;
+ confess if @$p_ref;
my ($h,$m) = get_commit $objid;
- my ($t) = $h =~ m/^tree (\w+)$/m or die $objid;
+ my ($t) = $h =~ m/^tree (\w+)$/m or confess $objid;
my (@ph) = $h =~ m/^parent (\w+)$/mg;
my $r = {
@@ -1011,7 +1011,8 @@ sub classify ($) {
if (@p == 2 && @identical == 2) {
my $get_t = sub {
my ($ph,$pm) = get_commit $_[0]{CommitId};
- $ph =~ m/^committer .* (\d+) [-+]\d+$/m or die "$_->{CommitId} ?";
+ $ph =~ m/^committer .* (\d+) [-+]\d+$/m
+ or confess "$_->{CommitId} ?";
$1;
};
my @bytime = @p;
@@ -1360,7 +1361,7 @@ sub walk ($;$$$) {
$cl->{Why} = "bare dgit dsc import";
return $bomb->();
}
- die "$ty ?";
+ confess "$ty ?";
} elsif ($ty eq 'MergedBreakwaters') {
$last_anchor = mergedbreakwaters_anchor $cl;
$build_start->(' MergedBreakwaters', $cur);
@@ -1571,7 +1572,7 @@ sub walk ($;$$$) {
confess "internal error" unless $build eq (pop @processed)->{CommitId};
in_workarea sub {
- mkdir $rd or $!==EEXIST or die $!;
+ mkdir $rd or $!==EEXIST or confess $!;
my $current_method;
my $want_debian = $build;
my $want_upstream = $build;
@@ -1681,9 +1682,9 @@ sub walk ($;$$$) {
or confess "$ch ?";
}
my $cf = "$rd/m$rewriting";
- open CD, ">", $cf or die $!;
- print CD $ch, "\n", $cl->{Msg} or die $!;
- close CD or die $!;
+ 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;
@@ -1713,7 +1714,7 @@ sub walk ($;$$$) {
};
my $final_check = get_differs $build, $input;
- die sprintf "internal error %#x %s %s", $final_check, $input, $build
+ confess sprintf "internal error %#x %s %s", $final_check, $input, $build
if $final_check & ~D_PAT_ADD;
my @r = ($build, $breakwater, $last_anchor);
@@ -1796,7 +1797,7 @@ sub cmd_analyse () {
$old = git_rev_parse 'HEAD';
}
my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
- STDOUT->error and die $!;
+ STDOUT->error and confess $!;
}
sub ffq_check ($;$$) {
@@ -1813,7 +1814,7 @@ sub ffq_check ($;$$) {
# normally $currentval should be HEAD
my ($currentval, $ff, $notff) =@_;
- $ff //= sub { print $_[0] or die $!; };
+ $ff //= sub { print $_[0] or confess $!; };
$notff //= \&snag;
my ($status, $message, $current, $ffq_prev, $gdrlast)
@@ -2052,7 +2053,7 @@ sub cmd_new_upstream () {
unless @ARGV && $ARGV[0] !~ m{^-};
my $c = git_rev_parse shift @ARGV;
- die unless $n =~ m/^$extra_orig_namepart_re$/;
+ confess unless $n =~ m/^$extra_orig_namepart_re$/;
$newpiece->($n, New => $c);
}
@@ -2232,7 +2233,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) {
- print "Previous head already recorded\n" or die $!;
+ print "Previous head already recorded\n" or confess $!;
} elsif ($status eq 'deferred') {
run_deferred_updates 'record-ffq-prev';
} else {
@@ -2243,13 +2244,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;
- print "$bw\n" or die $!;
+ print "$bw\n" or confess $!;
}
sub cmd_breakwater () {
badusage "no arguments allowed" if @ARGV;
my ($anchor, $bw) = keycommits +(git_rev_parse 'HEAD'), 0,0;
- print "$bw\n" or die $!;
+ print "$bw\n" or confess $!;
}
sub cmd_status () {
@@ -2282,7 +2283,7 @@ sub cmd_status () {
my $prcommitinfo = sub {
my ($cid) = @_;
- flush STDOUT or die $!;
+ flush STDOUT or confess $!;
runcmd @git, qw(--no-pager log -n1),
'--pretty=format: %h %s%n',
$cid;
@@ -2638,7 +2639,7 @@ END
};
complete_convert_from $old_head, $work, $gdrlastinfo, 'convert-from-gbp';
- print <<END or die $!;
+ print <<END or confess $!;
git-debrebase: converted from patched-unapplied (gbp) branch format, OK
END
}
@@ -2667,7 +2668,7 @@ sub cmd_convert_to_gbp () {
}
snags_maybe_bail();
update_head_checkout $head, $out, "convert to gbp (v0)";
- print <<END or die $!;
+ print <<END or confess $!;
git-debrebase: converted to git-buildpackage branch format
git-debrebase: WARNING: do not now run "git-debrebase" any more
git-debrebase: WARNING: doing so would drop all upstream patches!
@@ -2757,7 +2758,7 @@ END
$something=1;
last;
}
- die "read $bpd: $!" if $!;
+ confess "read $bpd: $!" if $!;
closedir BPD;
}
if ($something) {
@@ -2979,7 +2980,7 @@ getoptions_main
my ($opt,$val) = @_;
badusage __ "git-debrebase: no cuddling to -i for git-rebase"
if length $val;
- die if $opt_defaultcmd_interactive; # should not happen
+ confess if $opt_defaultcmd_interactive; # should not happen
$opt_defaultcmd_interactive = [ qw(-i) ];
# This access to @ARGV is excessive familiarity with
# Getopt::Long, but there isn't another sensible