diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-07-12 09:38:21 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-07-12 09:38:21 -0700 |
commit | c925fe23684455735c3bb1903803643a24a58d8f (patch) | |
tree | 300efa4a8e232730a677a9337d591d12388eebaa /builtin | |
parent | 0d1a1517835a10818f2d40d8780a268dbb5e20ce (diff) | |
download | git-c925fe23684455735c3bb1903803643a24a58d8f.tar.gz git-c925fe23684455735c3bb1903803643a24a58d8f.tar.xz |
Revert "checkout: retire --ignore-other-worktrees in favor of --force"
This reverts commit 0d1a1517835a10818f2d40d8780a268dbb5e20ce.
When trying to switch to a different branch, that happens to be
checked out in another working tree, the user shouldn't have to
give up the other safety measures (like protecting the local changes
that overlap the difference between the branches) while defeating
the "no two checkouts of the same branch" safety.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/checkout.c | 8 | ||||
-rw-r--r-- | builtin/worktree.c | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index 01c7c30d5..57545543e 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -35,6 +35,7 @@ struct checkout_opts { int writeout_stage; int overwrite_ignore; int ignore_skipworktree; + int ignore_other_worktrees; const char *new_branch; const char *new_branch_force; @@ -902,8 +903,7 @@ static void check_linked_checkout(struct branch_info *new, const char *id) strbuf_rtrim(&gitdir); } else strbuf_addstr(&gitdir, get_git_common_dir()); - die(_("'%s' is already checked out at '%s'; use --force to override"), - new->name, gitdir.buf); + die(_("'%s' is already checked out at '%s'"), new->name, gitdir.buf); done: strbuf_release(&path); strbuf_release(&sb); @@ -1151,7 +1151,7 @@ static int checkout_branch(struct checkout_opts *opts, char *head_ref = resolve_refdup("HEAD", 0, sha1, &flag); if (head_ref && (!(flag & REF_ISSYMREF) || strcmp(head_ref, new->path)) && - !opts->force) + !opts->ignore_other_worktrees) check_linked_checkouts(new); free(head_ref); } @@ -1198,6 +1198,8 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) N_("do not limit pathspecs to sparse entries only")), OPT_HIDDEN_BOOL(0, "guess", &dwim_new_local_branch, N_("second guess 'git checkout no-such-branch'")), + OPT_BOOL(0, "ignore-other-worktrees", &opts.ignore_other_worktrees, + N_("do not check if another worktree is holding the given ref")), OPT_END(), }; diff --git a/builtin/worktree.c b/builtin/worktree.c index 050b443dc..69248ba0a 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -303,7 +303,7 @@ static int add(int ac, const char **av, const char *prefix) argv_array_push(&cmd, "checkout"); if (force) - argv_array_push(&cmd, "--force"); + argv_array_push(&cmd, "--ignore-other-worktrees"); if (new_branch) argv_array_pushl(&cmd, "-b", new_branch, NULL); if (new_branch_force) |