Merge branch 'mg/cherry-pick-multi-on-unborn'

"git cherry-pick A" worked on an unborn branch, but "git
cherry-pick A..B" didn't.

* mg/cherry-pick-multi-on-unborn:
  cherry-pick: allow to pick to unborn branches
This commit is contained in:
Junio C Hamano 2016-06-27 09:56:53 -07:00
commit db8128fee0

View File

@ -888,6 +888,10 @@ static int sequencer_rollback(struct replay_opts *opts)
git_path_head_file()); git_path_head_file());
goto fail; goto fail;
} }
if (is_null_sha1(sha1)) {
error(_("cannot abort from a branch yet to be born"));
goto fail;
}
if (reset_for_rollback(sha1)) if (reset_for_rollback(sha1))
goto fail; goto fail;
remove_sequencer_state(); remove_sequencer_state();
@ -1086,11 +1090,8 @@ int sequencer_pick_revisions(struct replay_opts *opts)
walk_revs_populate_todo(&todo_list, opts); walk_revs_populate_todo(&todo_list, opts);
if (create_seq_dir() < 0) if (create_seq_dir() < 0)
return -1; return -1;
if (get_sha1("HEAD", sha1)) { if (get_sha1("HEAD", sha1) && (opts->action == REPLAY_REVERT))
if (opts->action == REPLAY_REVERT) return error(_("Can't revert as initial commit"));
return error(_("Can't revert as initial commit"));
return error(_("Can't cherry-pick into empty head"));
}
save_head(sha1_to_hex(sha1)); save_head(sha1_to_hex(sha1));
save_opts(opts); save_opts(opts);
return pick_commits(todo_list, opts); return pick_commits(todo_list, opts);