checkout -m: do not try to fall back to --merge from an unborn branch
If switching from an unborn branch (= empty tree) to a valid commit failed without -m, it would fail with -m option as well. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
6e8f993a5a
commit
64da3ae5c1
|
@ -272,7 +272,7 @@ static int merge_working_tree(struct checkout_opts *opts,
|
||||||
topts.initial_checkout = is_cache_unborn();
|
topts.initial_checkout = is_cache_unborn();
|
||||||
topts.update = 1;
|
topts.update = 1;
|
||||||
topts.merge = 1;
|
topts.merge = 1;
|
||||||
topts.gently = opts->merge;
|
topts.gently = opts->merge && old->commit;
|
||||||
topts.verbose_update = !opts->quiet;
|
topts.verbose_update = !opts->quiet;
|
||||||
topts.fn = twoway_merge;
|
topts.fn = twoway_merge;
|
||||||
topts.dir = xcalloc(1, sizeof(*topts.dir));
|
topts.dir = xcalloc(1, sizeof(*topts.dir));
|
||||||
|
@ -294,7 +294,13 @@ static int merge_working_tree(struct checkout_opts *opts,
|
||||||
struct tree *work;
|
struct tree *work;
|
||||||
if (!opts->merge)
|
if (!opts->merge)
|
||||||
return 1;
|
return 1;
|
||||||
parse_commit(old->commit);
|
|
||||||
|
/*
|
||||||
|
* Without old->commit, the below is the same as
|
||||||
|
* the two-tree unpack we already tried and failed.
|
||||||
|
*/
|
||||||
|
if (!old->commit)
|
||||||
|
return 1;
|
||||||
|
|
||||||
/* Do more real merge */
|
/* Do more real merge */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue