From 15a39ac86cf4c12eed6a4ae84acc524e97e22f0d Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 12 Nov 2021 23:18:05 +0100 Subject: [PATCH] fix: fixupAll flag should take precedence over autorebase When running `git node land --autorebase --fixupAll`, ncu should squash all the commits first, then ignore the `--autorebase` flag as there is only one commit left. Refs: https://github.com/nodejs/node/pull/40696#issuecomment-967642528 --- lib/landing_session.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/landing_session.js b/lib/landing_session.js index 79749f56..92749334 100644 --- a/lib/landing_session.js +++ b/lib/landing_session.js @@ -214,6 +214,12 @@ class LandingSession extends Session { } return this.final(); + } else if (this.fixupAll) { + cli.log(`There are ${subjects.length} commits in the PR. ` + + 'Attempting to fixup everything into first commit.'); + await runAsync('git', ['reset', '--soft', `HEAD~${subjects.length - 1}`]); + await runAsync('git', ['commit', '--amend', '--no-edit']); + return await this.amend() && this.final(); } else if (this.autorebase && this.canAutomaticallyRebase(subjects)) { // Run git rebase in interactive mode with autosquash but without editor // so that it will perform everything automatically. @@ -239,12 +245,6 @@ class LandingSession extends Session { cli.log(`Couldn't rebase ${count} commits in the PR automatically`); this.makeRebaseSuggestion(subjects); } - } else if (this.fixupAll) { - cli.log(`There are ${subjects.length} commits in the PR. ` + - 'Attempting to fixup everything into first commit.'); - await runAsync('git', ['reset', '--soft', `HEAD~${subjects.length - 1}`]); - await runAsync('git', ['commit', '--amend', '--no-edit']); - return await this.amend() && this.final(); } else { this.makeRebaseSuggestion(subjects); }