summaryrefslogtreecommitdiff
path: root/builtin-checkout.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-08-29 02:39:07 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-08-29 02:39:07 (GMT)
commit4a224a9bbec4e7a1a4dcb7a91e663483dc477b78 (patch)
tree4c1a0863573f8f3a7a7b74b3f7a2876d0eb91a95 /builtin-checkout.c
parent232d4537667e32230c855777444abbe732536ed9 (diff)
parentcc580af88507ce02eca1a3a6512044dd19c84d80 (diff)
downloadgit-4a224a9bbec4e7a1a4dcb7a91e663483dc477b78.zip
git-4a224a9bbec4e7a1a4dcb7a91e663483dc477b78.tar.gz
git-4a224a9bbec4e7a1a4dcb7a91e663483dc477b78.tar.bz2
Merge branch 'jk/maint-1.6.3-checkout-unborn'
* jk/maint-1.6.3-checkout-unborn: checkout: do not imply "-f" on unborn branches
Diffstat (limited to 'builtin-checkout.c')
-rw-r--r--builtin-checkout.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c
index 8a9a474..c6d6ac9 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -402,7 +402,9 @@ static int merge_working_tree(struct checkout_opts *opts,
topts.dir = xcalloc(1, sizeof(*topts.dir));
topts.dir->flags |= DIR_SHOW_IGNORED;
topts.dir->exclude_per_dir = ".gitignore";
- tree = parse_tree_indirect(old->commit->object.sha1);
+ tree = parse_tree_indirect(old->commit ?
+ old->commit->object.sha1 :
+ (unsigned char *)EMPTY_TREE_SHA1_BIN);
init_tree_desc(&trees[0], tree->buffer, tree->size);
tree = parse_tree_indirect(new->commit->object.sha1);
init_tree_desc(&trees[1], tree->buffer, tree->size);
@@ -541,14 +543,6 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
parse_commit(new->commit);
}
- if (!old.commit && !opts->force) {
- if (!opts->quiet) {
- warning("You appear to be on a branch yet to be born.");
- warning("Forcing checkout of %s.", new->name);
- }
- opts->force = 1;
- }
-
ret = merge_working_tree(opts, &old, new);
if (ret)
return ret;