chiark / gitweb /
changelog: Document empirical effectiveness of new gnupg workaround
[dgit.git] / git-debrebase
index 3458b12f5d86d93c2de804989afbed423cc43e92..658884d2d062fa5bb068ad2edd4d7e59bfd9bd1e 100755 (executable)
@@ -34,6 +34,7 @@ use Data::Dumper;
 use Getopt::Long qw(:config posix_default gnu_compat bundling);
 use Dpkg::Version;
 use File::FnMatch qw(:fnmatch);
+use File::Copy;
 
 our ($opt_force, $opt_noop_ok, @opt_anchors);
 our ($opt_defaultcmd_interactive);
@@ -117,7 +118,7 @@ sub run_deferred_updates ($) {
 
     confess 'dangerous internal error' unless all_snags_summarised();
 
-    my @upd_cmd = (@git, qw(update-ref --stdin -m), "debrebase: $mrest");
+    my @upd_cmd = (git_update_ref_cmd "debrebase: $mrest", qw(--stdin));
     debugcmd '>|', @upd_cmd;
     open U, "|-", @upd_cmd or die $!;
     foreach (@deferred_updates) {
@@ -1350,6 +1351,8 @@ END
         'launder for new upstream';
 
     my @cmd = (@git, qw(rebase --onto), $new_bw, $old_bw, @ARGV);
+    local $ENV{GIT_REFLOG_ACTION} = git_reflog_action_msg
+       "debrebase new-upstream $new_version: rebase";
     runcmd @cmd;
     # now it's for the user to sort out
 }
@@ -1495,7 +1498,12 @@ sub make_patches_staged ($) {
     in_workarea sub {
        runcmd @git, qw(checkout -q -b bw), $secret_bw;
        runcmd @git, qw(checkout -q -b patch-queue/bw), $secret_head;
-       runcmd qw(gbp pq export);
+       my @gbp_cmd = (qw(gbp pq export));
+       my $r = system shell_cmd 'exec >../gbp-pq-err 2>&1', @gbp_cmd;
+       if ($r) {
+           { local ($!,$?); copy('../gbp-pq-err', \*STDERR); }
+           failedcmd @gbp_cmd;
+       }
        runcmd @git, qw(add debian/patches);
     };
 }