git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Eric Sunshine <sunshine@sunshineco.com>
To: Kazuki Yamaguchi <k@rhe.jp>
Cc: Git List <git@vger.kernel.org>, Duy Nguyen <pclouds@gmail.com>
Subject: Re: [PATCH v2 5/5] branch -d: refuse deleting a branch which is currently checked out
Date: Sun, 27 Mar 2016 13:52:18 -0400	[thread overview]
Message-ID: <CAPig+cSCC+OzotkTx89iS+t4DRd3F+QoHP4n-v_+rxXU2R+2LA@mail.gmail.com> (raw)
In-Reply-To: <cbc5116e5069f20545d66e12e082e0e17f4ecced.1458927521.git.k@rhe.jp>

On Fri, Mar 25, 2016 at 2:28 PM, Kazuki Yamaguchi <k@rhe.jp> wrote:
> When a branch is checked out by current working tree, deleting the
> branch is forbidden. However when the branch is checked out only by
> other working trees, deleting is allowed.
> Use find_shared_symref() to check if the branch is in use, not just
> comparing with the current working tree's HEAD.
>
> Signed-off-by: Kazuki Yamaguchi <k@rhe.jp>
> ---
> diff --git a/builtin/branch.c b/builtin/branch.c
> @@ -215,16 +216,17 @@ static int delete_branches(int argc, const char **argv, int force, int kinds,
>                 int flags = 0;
>
>                 strbuf_branchname(&bname, argv[i]);
> -               if (kinds == FILTER_REFS_BRANCHES && !strcmp(head, bname.buf)) {
> +               free(name);
> +               name = mkpathdup(fmt, bname.buf);
> +
> +               if (kinds == FILTER_REFS_BRANCHES &&
> +                   find_shared_symref("HEAD", name)) {
>                         error(_("Cannot delete the branch '%s' "
> -                             "which you are currently on."), bname.buf);
> +                             "which is currently checked out."), bname.buf);

Would it be possible to do a better job of letting the user know what
went wrong by stating in which worktree(s) the branch is checked out?
My concern is that someone seeing this message might respond "huh? I
have 'master' checked out, so why is this telling me that 'foo' is
checked out", and not realize that 'foo' is in fact checked out in a
different worktree.

  parent reply	other threads:[~2016-03-27 17:52 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-21  9:50 [PATCH] branch: update all per-worktree HEADs when renaming a branch Kazuki Yamaguchi
2016-03-21 17:41 ` Eric Sunshine
2016-03-22  0:49   ` Duy Nguyen
2016-03-25 11:56     ` Kazuki Yamaguchi
2016-03-25 11:33   ` Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 0/5] branch: fix branch operations with multiple working trees Kazuki Yamaguchi
2016-03-25 21:13   ` Junio C Hamano
2016-03-27  7:29     ` Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 1/5] refs: add new flag RESOLVE_REF_COMMON_DIR to resolve_ref_unsafe Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 2/5] refs: add REF_COMMON_DIR flag Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 3/5] refs: add create_symref_common_dir as a variation of create_symref Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 4/5] branch -m: update all per-worktree HEADs Kazuki Yamaguchi
2016-03-25 18:28 ` [PATCH v2 5/5] branch -d: refuse deleting a branch which is currently checked out Kazuki Yamaguchi
2016-03-25 21:00   ` Junio C Hamano
2016-03-27 17:52   ` Eric Sunshine [this message]
2016-03-28  7:16     ` Kazuki Yamaguchi
2016-03-28  7:22     ` [PATCH v2] " Kazuki Yamaguchi
2016-03-28 16:51       ` Eric Sunshine
2016-03-29  9:28         ` Kazuki Yamaguchi
2016-03-29 18:47           ` Eric Sunshine
2016-03-29  9:38   ` [PATCH v3] " Kazuki Yamaguchi
2016-03-29 18:57     ` Eric Sunshine
2016-03-27 14:37 ` [PATCH v3 0/2] update all per-worktree HEADs when renaming a branch Kazuki Yamaguchi
2016-03-27 14:37 ` [PATCH v3 1/2] refs: add a new function set_worktree_head_symref Kazuki Yamaguchi
2016-03-28 17:48   ` Junio C Hamano
2016-03-29  2:23     ` David Turner
2016-04-07 21:20   ` Eric Sunshine
2016-04-08  6:37     ` Kazuki Yamaguchi
2016-04-08  6:42       ` Eric Sunshine
2016-03-27 14:37 ` [PATCH v3 2/2] branch -m: update all per-worktree HEADs Kazuki Yamaguchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPig+cSCC+OzotkTx89iS+t4DRd3F+QoHP4n-v_+rxXU2R+2LA@mail.gmail.com \
    --to=sunshine@sunshineco.com \
    --cc=git@vger.kernel.org \
    --cc=k@rhe.jp \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).