sequencer: add update-ref command
Add the boilerplate for an "update-ref" command in the sequencer. This connects to the current no-op do_update_ref() which will be filled in after more connections are created. The syntax in the todo list will be "update-ref <ref-name>" to signal that we should store the current commit as the value for updating <ref-name> at the end of the rebase. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
d7ce9a2201
commit
a97d79163e
14
sequencer.c
14
sequencer.c
@ -1723,6 +1723,7 @@ static struct {
|
||||
[TODO_LABEL] = { 'l', "label" },
|
||||
[TODO_RESET] = { 't', "reset" },
|
||||
[TODO_MERGE] = { 'm', "merge" },
|
||||
[TODO_UPDATE_REF] = { 'u', "update-ref" },
|
||||
[TODO_NOOP] = { 0, "noop" },
|
||||
[TODO_DROP] = { 'd', "drop" },
|
||||
[TODO_COMMENT] = { 0, NULL },
|
||||
@ -2504,7 +2505,7 @@ static int parse_insn_line(struct repository *r, struct todo_item *item,
|
||||
command_to_string(item->command));
|
||||
|
||||
if (item->command == TODO_EXEC || item->command == TODO_LABEL ||
|
||||
item->command == TODO_RESET) {
|
||||
item->command == TODO_RESET || item->command == TODO_UPDATE_REF) {
|
||||
item->commit = NULL;
|
||||
item->arg_offset = bol - buf;
|
||||
item->arg_len = (int)(eol - bol);
|
||||
@ -4104,6 +4105,11 @@ leave_merge:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int do_update_ref(struct repository *r, const char *ref_name)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int is_final_fixup(struct todo_list *todo_list)
|
||||
{
|
||||
int i = todo_list->current;
|
||||
@ -4479,6 +4485,12 @@ static int pick_commits(struct repository *r,
|
||||
return error_with_patch(r, item->commit,
|
||||
arg, item->arg_len,
|
||||
opts, res, 0);
|
||||
} else if (item->command == TODO_UPDATE_REF) {
|
||||
struct strbuf ref = STRBUF_INIT;
|
||||
strbuf_add(&ref, arg, item->arg_len);
|
||||
if ((res = do_update_ref(r, ref.buf)))
|
||||
reschedule = 1;
|
||||
strbuf_release(&ref);
|
||||
} else if (!is_noop(item->command))
|
||||
return error(_("unknown command %d"), item->command);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user