revert: rearrange pick_revisions() for clarity
Deal completely with "cherry-pick --quit" and --continue at the beginning of pick_revisions(), leaving the rest of the function for the more interesting "git cherry-pick <commits>" case. No functional change intended. The impact is just to unindent the code a little. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f80a87262a
commit
dffc860028
@ -971,40 +971,40 @@ static int pick_revisions(struct replay_opts *opts)
|
|||||||
if (opts->subcommand == REPLAY_REMOVE_STATE) {
|
if (opts->subcommand == REPLAY_REMOVE_STATE) {
|
||||||
remove_sequencer_state(1);
|
remove_sequencer_state(1);
|
||||||
return 0;
|
return 0;
|
||||||
} else if (opts->subcommand == REPLAY_CONTINUE) {
|
}
|
||||||
|
if (opts->subcommand == REPLAY_CONTINUE) {
|
||||||
if (!file_exists(git_path(SEQ_TODO_FILE)))
|
if (!file_exists(git_path(SEQ_TODO_FILE)))
|
||||||
goto error;
|
return error(_("No %s in progress"), action_name(opts));
|
||||||
read_populate_opts(&opts);
|
read_populate_opts(&opts);
|
||||||
read_populate_todo(&todo_list, opts);
|
read_populate_todo(&todo_list, opts);
|
||||||
|
|
||||||
/* Verify that the conflict has been resolved */
|
/* Verify that the conflict has been resolved */
|
||||||
if (!index_differs_from("HEAD", 0))
|
if (!index_differs_from("HEAD", 0))
|
||||||
todo_list = todo_list->next;
|
todo_list = todo_list->next;
|
||||||
} else {
|
return pick_commits(todo_list, opts);
|
||||||
/*
|
|
||||||
* Start a new cherry-pick/ revert sequence; but
|
|
||||||
* first, make sure that an existing one isn't in
|
|
||||||
* progress
|
|
||||||
*/
|
|
||||||
|
|
||||||
walk_revs_populate_todo(&todo_list, opts);
|
|
||||||
if (create_seq_dir() < 0) {
|
|
||||||
error(_("A cherry-pick or revert is in progress."));
|
|
||||||
advise(_("Use --continue to continue the operation"));
|
|
||||||
advise(_("or --quit to forget about it"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
if (get_sha1("HEAD", sha1)) {
|
|
||||||
if (opts->action == REVERT)
|
|
||||||
return error(_("Can't revert as initial commit"));
|
|
||||||
return error(_("Can't cherry-pick into empty head"));
|
|
||||||
}
|
|
||||||
save_head(sha1_to_hex(sha1));
|
|
||||||
save_opts(opts);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Start a new cherry-pick/ revert sequence; but
|
||||||
|
* first, make sure that an existing one isn't in
|
||||||
|
* progress
|
||||||
|
*/
|
||||||
|
|
||||||
|
walk_revs_populate_todo(&todo_list, opts);
|
||||||
|
if (create_seq_dir() < 0) {
|
||||||
|
error(_("A cherry-pick or revert is in progress."));
|
||||||
|
advise(_("Use --continue to continue the operation"));
|
||||||
|
advise(_("or --quit to forget about it"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (get_sha1("HEAD", sha1)) {
|
||||||
|
if (opts->action == REVERT)
|
||||||
|
return error(_("Can't revert as initial commit"));
|
||||||
|
return error(_("Can't cherry-pick into empty head"));
|
||||||
|
}
|
||||||
|
save_head(sha1_to_hex(sha1));
|
||||||
|
save_opts(opts);
|
||||||
return pick_commits(todo_list, opts);
|
return pick_commits(todo_list, opts);
|
||||||
error:
|
|
||||||
return error(_("No %s in progress"), action_name(opts));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int cmd_revert(int argc, const char **argv, const char *prefix)
|
int cmd_revert(int argc, const char **argv, const char *prefix)
|
||||||
|
Reference in New Issue
Block a user