summaryrefslogtreecommitdiff
path: root/builtin/rebase.c
diff options
context:
space:
mode:
authorPhillip Wood <phillip.wood@dunelm.org.uk>2022-01-26 13:05:43 (GMT)
committerJunio C Hamano <gitster@pobox.com>2022-01-26 20:08:53 (GMT)
commit1526d0fcfd20efca24bc96a4bc14c8d5459ec470 (patch)
tree2dcea6100e2a8bb0446cd4ee97005ab8452d22d8 /builtin/rebase.c
parentd6a9f5ea8e97dd9435e5fa02cc129c1b241934f2 (diff)
downloadgit-1526d0fcfd20efca24bc96a4bc14c8d5459ec470.zip
git-1526d0fcfd20efca24bc96a4bc14c8d5459ec470.tar.gz
git-1526d0fcfd20efca24bc96a4bc14c8d5459ec470.tar.bz2
reset_head(): make default_reflog_action optional
This parameter is only needed when a ref is going to be updated and the caller does not pass an explicit reflog message. Callers that are only discarding uncommitted changes in the working tree such as such as "rebase --skip" or create_autostash() do not update any refs so should not have to worry about passing this parameter. This change is not intended to have any user visible changes. The pointer comparison between `oid` and `&head_oid` checks that the caller did not pass an oid to be checked out. As no callers pass RESET_HEAD_RUN_POST_CHECKOUT_HOOK without passing an oid there are no changes to when the post-checkout hook is run. As update_ref() only updates the ref if the oid passed to it differs from the current ref there are no changes to when HEAD is updated. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/rebase.c')
-rw-r--r--builtin/rebase.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/builtin/rebase.c b/builtin/rebase.c
index 2e5a535..82be965 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -585,8 +585,7 @@ static int move_to_original_branch(struct rebase_options *opts)
opts->head_name);
ret = reset_head(the_repository, NULL, opts->head_name,
RESET_HEAD_REFS_ONLY,
- orig_head_reflog.buf, head_reflog.buf,
- DEFAULT_REFLOG_ACTION);
+ orig_head_reflog.buf, head_reflog.buf, NULL);
strbuf_release(&orig_head_reflog);
strbuf_release(&head_reflog);
@@ -822,7 +821,7 @@ static int checkout_up_to_date(struct rebase_options *options)
options->switch_to);
if (reset_head(the_repository, &options->orig_head,
options->head_name, RESET_HEAD_RUN_POST_CHECKOUT_HOOK,
- NULL, buf.buf, DEFAULT_REFLOG_ACTION) < 0)
+ NULL, buf.buf, NULL) < 0)
ret = error(_("could not switch to %s"), options->switch_to);
strbuf_release(&buf);
@@ -1273,7 +1272,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
string_list_clear(&merge_rr, 1);
if (reset_head(the_repository, NULL, NULL, RESET_HEAD_HARD,
- NULL, NULL, DEFAULT_REFLOG_ACTION) < 0)
+ NULL, NULL, NULL) < 0)
die(_("could not discard worktree changes"));
remove_branch_state(the_repository, 0);
if (read_basic_state(&options))
@@ -1778,8 +1777,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
options.head_name ? options.head_name : "detached HEAD",
oid_to_hex(&options.onto->object.oid));
reset_head(the_repository, NULL, options.head_name,
- RESET_HEAD_REFS_ONLY, "HEAD", msg.buf,
- DEFAULT_REFLOG_ACTION);
+ RESET_HEAD_REFS_ONLY, "HEAD", msg.buf, NULL);
strbuf_release(&msg);
ret = finish_rebase(&options);
goto cleanup;