[PATCH v2 2/4] rebase: avoid double reflog entry when switching branches
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Jan 18, 2019, 15:09 UTC
- Message-ID
- <3a68f1c509a357447bddf8bae6f1685b47673f89.1547824162.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.24.v2.git.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
When switching a branch *and* updating said branch to a different revision, let's avoid a double entry in HEAD's reflog by first updating the branch and then adjusting the symbolic ref HEAD.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- builtin/rebase.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/builtin/rebase.c b/builtin/rebase.c index efa90ca894..5c827b2f03 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -438,10 +438,11 @@ static int reset_head(struct object_id *oid, const char *action, detach_head ? REF_NO_DEREF : 0, UPDATE_REFS_MSG_ON_ERR); else { - ret = create_symref("HEAD", switch_to_branch, msg.buf); + ret = update_ref(reflog_orig_head, switch_to_branch, oid, + NULL, 0, UPDATE_REFS_MSG_ON_ERR); if (!ret) - ret = update_ref(reflog_head, "HEAD", oid, NULL, 0, - UPDATE_REFS_MSG_ON_ERR); + ret = create_symref("HEAD", switch_to_branch, + reflog_head); } leave_reset_head:
-- gitgitgadget