Merge branch 'jk/maint-1.6.3-checkout-unborn' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 16 Sep 2009 21:26:56 +0000 (14:26 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Sep 2009 21:26:56 +0000 (14:26 -0700)
* jk/maint-1.6.3-checkout-unborn:
checkout: do not imply "-f" on unborn branches

1  2 
builtin-checkout.c
diff --combined builtin-checkout.c
index 8a9a474218c128b7878647045ba471df9902636a,140168cec40273819c3910aa75240a730d36be59..c6d6ac99f63459094d3e1a110fed228a74f7927b
@@@ -402,7 -402,9 +402,9 @@@ static int merge_working_tree(struct ch
                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 +543,6 @@@ static int switch_branches(struct check
                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;
@@@ -605,7 -599,7 +599,7 @@@ int cmd_checkout(int argc, const char *
  
        opts.track = BRANCH_TRACK_UNSPECIFIED;
  
 -      argc = parse_options(argc, argv, options, checkout_usage,
 +      argc = parse_options(argc, argv, prefix, options, checkout_usage,
                             PARSE_OPT_KEEP_DASHDASH);
  
        /* --track without -b should DWIM */