rebase: avoid double reflog entry when switching branches
[gitweb.git] / builtin / rebase.c
index e1dfa74ca85931569a362d11173f6c35be47a434..768bea0da8751228d3aa3acf1943aaefbe19666c 100644 (file)
@@ -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: