chiark / gitweb /
i18n: git-debrebase: Change a lot of die to confess
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 2 Oct 2018 12:34:36 +0000 (13:34 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 2 Oct 2018 12:40:17 +0000 (13:40 +0100)
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>
git-debrebase

index 645b072aaf2a11eb34ca2943eb4b69961c49ed74..39f79cd5f92cd7aa637e1e2313931e9306922fe0 100755 (executable)
@@ -105,7 +105,7 @@ sub dd ($) {
 sub get_commit ($) {
     my ($objid) = @_;
     my $data = (git_cat_file $objid, 'commit');
 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 ($`,$');
 }
 
     return ($`,$');
 }
 
@@ -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 die $!;
+    open U, "|-", @upd_cmd or confess $!;
     foreach (@$updates) {
        printdebug ">= ", $_, "\n";
     foreach (@$updates) {
        printdebug ">= ", $_, "\n";
-       print U $_, "\n" or die $!;
+       print U $_, "\n" or confess $!;
     }
     printdebug ">\$\n";
     close U or failedcmd @upd_cmd;
     }
     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) {
            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>) {
                while (my $patch = <S>) {
-                   chomp $patch or die $!;
+                   chomp $patch or confess $!;
                    $prereq{$patch} //= {};
                    foreach my $earlier (@earlier) {
                    $prereq{$patch} //= {};
                    foreach my $earlier (@earlier) {
-                       $prereq{$patch}{$earlier}{$s}++ and die;
+                       $prereq{$patch}{$earlier}{$s}++ and confess;
                    }
                    push @earlier, $patch;
                    }
                    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;
                close S;
            }
            read_tree_upstream $newbase, 1;
@@ -697,7 +697,7 @@ sub merge_series ($$$;@) {
        my $authordate = sub {
            my ($f) = @_;
            $authordate{$f} //= do {
        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: }{};
                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;
 
        while (keys %prereq) {
            my $best;
@@ -722,7 +722,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 die $!;
+           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};
@@ -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;
            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;
            $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 //= [];
     #    $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 ($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 = {
     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};
     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;
            $1;
        };
        my @bytime = @p;
@@ -1360,7 +1361,7 @@ sub walk ($;$$$) {
                $cl->{Why} = "bare dgit dsc import";
                return $bomb->();
            }
                $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);
        } 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 {
     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;
        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";
                        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;
                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;
     };
 
     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);
        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;
        $old = git_rev_parse 'HEAD';
     }
     my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
-    STDOUT->error and die $!;
+    STDOUT->error and confess $!;
 }
 
 sub ffq_check ($;$$) {
 }
 
 sub ffq_check ($;$$) {
@@ -1813,7 +1814,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 die $!; };
+    $ff //= sub { print $_[0] or confess $!; };
     $notff //= \&snag;
 
     my ($status, $message, $current, $ffq_prev, $gdrlast)
     $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;
             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);
     }
 
        $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) {
     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 {
     } 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;
 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;
 }
 
 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 () {
 }
 
 sub cmd_status () {
@@ -2282,7 +2283,7 @@ sub cmd_status () {
 
     my $prcommitinfo = sub {
        my ($cid) = @_;
 
     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;
        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';
     };
 
     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
 }
 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)";
     }
     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!
 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;
                }
                    $something=1;
                    last;
                }
-               die "read $bpd: $!" if $!;
+               confess "read $bpd: $!" if $!;
                closedir BPD;
            }
            if ($something) {
                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;
               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
               $opt_defaultcmd_interactive = [ qw(-i) ];
               # This access to @ARGV is excessive familiarity with
               # Getopt::Long, but there isn't another sensible