checkout: require worktree unconditionally
In order to allow linked worktree creation via "git checkout --to" from a bare repository, 3473ad0 (checkout: don't require a work tree when checking out into a new one, 2014-11-30) dropped git-checkout's unconditional NEED_WORK_TREE requirement and instead performed worktree setup conditionally based upon presence or absence of the --to option. Now that --to has been retired and git-checkout is no longer responsible for linked worktree creation, the NEED_WORK_TREE requirement can be re-instated. This effectively reverts 3473ad0, except for the tests it added which now check bare repository behavior of "git worktree add" instead. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Eric Sunshine committed
Jul 6, 2015 at 13:30 UTC
0ca560cb975aa081971d0fb1586e0206156fa22f
2 files changed
+1
-3
builtin/checkout.c
-2
@@ -1218,8 +1218,6 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
1218
1219
opts.new_worktree_mode = getenv("GIT_CHECKOUT_NEW_WORKTREE") != NULL;
1220
1221
- setup_work_tree();
1222
-
1221
if (conflict_style) {
1222
opts.merge = 1; /* implied */
1223
git_xmerge_config("merge.conflictstyle", conflict_style, NULL);
git.c
+1
-1
@@ -383,7 +383,7 @@ static struct cmd_struct commands[] = {
383
{ "check-ignore", cmd_check_ignore, RUN_SETUP | NEED_WORK_TREE },
384
{ "check-mailmap", cmd_check_mailmap, RUN_SETUP },
385
{ "check-ref-format", cmd_check_ref_format },
386
- { "checkout", cmd_checkout, RUN_SETUP },
386
+ { "checkout", cmd_checkout, RUN_SETUP | NEED_WORK_TREE },
387
{ "checkout-index", cmd_checkout_index,
388
RUN_SETUP | NEED_WORK_TREE},
389
{ "cherry", cmd_cherry, RUN_SETUP },