summaryrefslogtreecommitdiff
path: root/git-debrebase
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2019-05-26 10:50:23 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2019-05-26 11:11:38 +0100
commitd28467db161d0590469b5f8e1115f84858d66e06 (patch)
tree7a9ae9a05a7ed734f03ffc20c3e5619b2a3ad75e /git-debrebase
parent4615f2d1c695caf9b04719f51d57dfae539bb712 (diff)
Replace `confess $!' with `confess "$!"', to actually print errno
$ perl -e 'use Carp; open X, ">/dev/eacces" or die $!' Permission denied at -e line 1. $ perl -e 'use Carp; open X, ">/dev/eacces" or confess $!' at -e line 1. $ perl -e 'use Carp; open X, ">/dev/eacces" or confess "$!"' Permission denied at -e line 1. $ confess will get references to its arguments in @_. Its documentation says it saves/restores $!. I conjecture that these interact as we see here: $ perl -e '$!=1; sub x { print ">@_<\n"; } x $!;' >Operation not permitted< $ perl -e '$!=1; sub x { local $!; print ">@_<\n"; } x $!;' >< Quoting "$!" averts the reference (and it will also ensure that we get the string value of $!, in case confess were to do anything in the future which would mess that up). This commit was made like this: perl -i -pe 's/confess \$!/confess "\$!"/g' dgit perl -i -pe 's/confess \$!/confess "\$!"/g' git-debrebase perl -i -pe 's/confess \$!/confess "\$!"/g' Debian/Dgit.pm I have manually reviewed each hunk and it all looks good to me. Closes: #929549 Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-xgit-debrebase42
1 files changed, 21 insertions, 21 deletions
diff --git a/git-debrebase b/git-debrebase
index efb0cea..71bf39d 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -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 confess $!;
+ open U, "|-", @upd_cmd or confess "$!";
foreach (@$updates) {
printdebug ">= ", $_, "\n";
- print U $_, "\n" or confess $!;
+ print U $_, "\n" or confess "$!";
}
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>) {
- chomp $patch or confess $!;
+ chomp $patch or 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;
@@ -723,7 +723,7 @@ sub merge_series ($$$;@) {
$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};
@@ -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;
- 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;
@@ -1586,7 +1586,7 @@ sub walk ($;$$$) {
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;
@@ -1696,9 +1696,9 @@ sub walk ($;$$$) {
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;
@@ -1811,7 +1811,7 @@ sub cmd_analyse () {
$old = git_rev_parse 'HEAD';
}
my ($dummy,$breakwater) = walk $old, 1,*STDOUT;
- STDOUT->error and confess $!;
+ STDOUT->error and confess "$!";
}
sub ffq_check ($;$$) {
@@ -1828,7 +1828,7 @@ sub ffq_check ($;$$) {
# 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)
@@ -2261,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) {
- 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 {
@@ -2272,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;
- 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;
- print "$bw\n" or confess $!;
+ print "$bw\n" or confess "$!";
}
sub cmd_status () {
@@ -2311,7 +2311,7 @@ sub cmd_status () {
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;
@@ -2674,7 +2674,7 @@ END
};
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
}
@@ -2703,7 +2703,7 @@ sub cmd_convert_to_gbp () {
}
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!
@@ -3030,7 +3030,7 @@ getoptions_main
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 ');