summaryrefslogtreecommitdiff
path: root/git-debrebase
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 18:56:18 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 20:11:09 +0100
commited6ced18970c0ecec79ab9697e45e07a6f7c2956 (patch)
tree5bafde8731a9f110f3fd96e943a16960e57ad278 /git-debrebase
parent343532497ca085d0ed5a56982953cb4edcd151bc (diff)
git-debrebase: merge: Call merge_failed in merge_series
Introduce $attempt_cmd for this purpose. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'git-debrebase')
-rwxr-xr-xgit-debrebase19
1 files changed, 13 insertions, 6 deletions
diff --git a/git-debrebase b/git-debrebase
index c3bd7ff..464a14c 100755
--- a/git-debrebase
+++ b/git-debrebase
@@ -439,6 +439,15 @@ sub merge_series ($$$;@) {
my $mwrecknote = sub { &mwrecknote($wrecknotes, @_); };
+ my $attempt_cmd = sub {
+ debugcmd '+', @_;
+ $!=0; $?=-1;
+ if (system @_) {
+ failedcmd_report_cmd undef, @_;
+ merge_failed $wrecknotes, failedcmd_waitstatus();
+ }
+ };
+
local $workarea = fresh_playground "$playprefix/merge";
my $seriesfile = "debian/patches/series";
in_workarea sub {
@@ -498,11 +507,8 @@ sub merge_series ($$$;@) {
runcmd @git, qw(checkout -q -b merge);
printdebug "merge_series merging...\n";
my @mergecmd = (@git, qw(merge --quiet --no-edit), "p-1");
- debugcmd '+', @mergecmd;
- $!=0; $?=-1;
- if (system @mergecmd) {
- failedcmd @mergecmd;
- }
+
+ $attempt_cmd->(@mergecmd);
printdebug "merge_series merge ok, series...\n";
# We need to construct a new series file
@@ -578,7 +584,8 @@ sub merge_series ($$$;@) {
$mwrecknote->('merged-patchqueue', git_rev_parse 'HEAD');
printdebug "merge_series series gbp pq import\n";
- runcmd qw(gbp pq import);
+
+ $attempt_cmd->(qw(gbp pq import));
# OK now we are on patch-queue/merge, and we need to rebase
# onto the intended parent and drop the patches from each one