[PATCH 4/5] sequencer: handle single commit pick separately
- From
Ramkumar Ramachandra <artagnon@gmail.com>
- Date
- Nov 5, 2011, 16:29 UTC
- Message-ID
- <1320510586-3940-5-git-send-email-artagnon@gmail.com>
- In-Reply-To
- <1320510586-3940-1-git-send-email-artagnon@gmail.com>
Don't write a '.git/sequencer/todo', as CHERRY_PICK_HEAD already contains this information. However, '.git/sequencer/opts' and '.git/sequencer/head' are required to support '--reset' and '--continue' operations.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> --- sequencer.c | 9 +++++++++ 1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/sequencer.c b/sequencer.c index 517eb23..6762ceb 100644 --- a/sequencer.c +++ b/sequencer.c @@ -746,6 +746,15 @@ static int pick_commits(struct replay_insn_list *todo_list, opts->record_origin || opts->edit)); read_and_refresh_cache(opts); + /* + * Backward compatibility hack: when only a single commit is + * picked, don't save_todo(), because CHERRY_PICK_HEAD will + * contain this information anyway. + */ + if (opts->subcommand == REPLAY_NONE && + todo_list->next == NULL && todo_list->action == REPLAY_PICK) + return do_pick_commit(todo_list->operand, REPLAY_PICK, opts); + for (cur = todo_list; cur; cur = cur->next) { save_todo(cur); res = do_pick_commit(cur->operand, cur->action, opts);
-- 1.7.6.351.gb35ac.dirty