From: Johannes Schindelin Date: Fri, 18 Jan 2019 15:09:25 +0000 (-0800) Subject: rebase: avoid double reflog entry when switching branches X-Git-Tag: v2.21.0-rc0~24^2~2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/5b2237a8761295a0027c7e055e6dfee0e30d5194 rebase: avoid double reflog entry when switching branches 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 Signed-off-by: Junio C Hamano --- diff --git a/builtin/rebase.c b/builtin/rebase.c index e1dfa74ca8..768bea0da8 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: