summaryrefslogtreecommitdiff
path: root/builtin-checkout.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2010-01-18 21:29:47 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2010-01-18 21:29:47 -0800
commit011c181cc656c8b3e48882729d1b6238e8c5c537 (patch)
tree4f4a1c516c474ed6ff0327f852e783d0efa53667 /builtin-checkout.c
parentMerge branch 'maint-1.6.2' into maint-1.6.3 (diff)
parentMerge branch 'maint-1.6.1' into maint-1.6.2 (diff)
downloadtgif-011c181cc656c8b3e48882729d1b6238e8c5c537.tar.xz
Merge branch 'maint-1.6.2' into maint-1.6.3
* maint-1.6.2: base85: Make the code more obvious instead of explaining the non-obvious base85: encode_85() does not use the decode table base85 debug code: Fix length byte calculation checkout -m: do not try to fall back to --merge from an unborn branch branch: die explicitly why when calling "git branch [-a|-r] branchname". textconv: stop leaking file descriptors commit: --cleanup is a message option git count-objects: handle packs bigger than 4G t7102: make the test fail if one of its check fails Conflicts: diff.c
Diffstat (limited to 'builtin-checkout.c')
-rw-r--r--builtin-checkout.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c
index b8a4b0139b..edefb703fa 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -396,7 +396,7 @@ static int merge_working_tree(struct checkout_opts *opts,
topts.initial_checkout = is_cache_unborn();
topts.update = 1;
topts.merge = 1;
- topts.gently = opts->merge;
+ topts.gently = opts->merge && old->commit;
topts.verbose_update = !opts->quiet;
topts.fn = twoway_merge;
topts.dir = xcalloc(1, sizeof(*topts.dir));
@@ -419,7 +419,13 @@ static int merge_working_tree(struct checkout_opts *opts,
struct merge_options o;
if (!opts->merge)
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 */