merge: clarify "pulling into void" special case
Instead of having it as one of the three if/elseif/.. case arms, test the condition and handle this special case upfront. This makes it easier to follow the flow of logic. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7ad39a2784
commit
1faac1cedc
@ -1178,23 +1178,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
||||
usage_with_options(builtin_merge_usage,
|
||||
builtin_merge_options);
|
||||
|
||||
/*
|
||||
* This could be traditional "merge <msg> HEAD <commit>..." and
|
||||
* the way we can tell it is to see if the second token is HEAD,
|
||||
* but some people might have misused the interface and used a
|
||||
* commit-ish that is the same as HEAD there instead.
|
||||
* Traditional format never would have "-m" so it is an
|
||||
* additional safety measure to check for it.
|
||||
*/
|
||||
|
||||
if (!have_message && head_commit &&
|
||||
is_old_style_invocation(argc, argv, head_commit->object.sha1)) {
|
||||
strbuf_addstr(&merge_msg, argv[0]);
|
||||
head_arg = argv[1];
|
||||
argv += 2;
|
||||
argc -= 2;
|
||||
remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv);
|
||||
} else if (!head_commit) {
|
||||
if (!head_commit) {
|
||||
struct commit *remote_head;
|
||||
/*
|
||||
* If the merged head is a valid one there is no reason
|
||||
@ -1217,6 +1201,23 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
||||
update_ref("initial pull", "HEAD", remote_head->object.sha1,
|
||||
NULL, 0, UPDATE_REFS_DIE_ON_ERR);
|
||||
goto done;
|
||||
}
|
||||
|
||||
/*
|
||||
* This could be traditional "merge <msg> HEAD <commit>..." and
|
||||
* the way we can tell it is to see if the second token is HEAD,
|
||||
* but some people might have misused the interface and used a
|
||||
* commit-ish that is the same as HEAD there instead.
|
||||
* Traditional format never would have "-m" so it is an
|
||||
* additional safety measure to check for it.
|
||||
*/
|
||||
if (!have_message &&
|
||||
is_old_style_invocation(argc, argv, head_commit->object.sha1)) {
|
||||
strbuf_addstr(&merge_msg, argv[0]);
|
||||
head_arg = argv[1];
|
||||
argv += 2;
|
||||
argc -= 2;
|
||||
remoteheads = collect_parents(head_commit, &head_subsumed, argc, argv);
|
||||
} else {
|
||||
struct strbuf merge_names = STRBUF_INIT;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user