From: Thomas Gummerer <t.gummerer@gmail.com> To: git@vger.kernel.org Cc: Eric Sunshine <sunshine@sunshineco.com>, Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, Junio C Hamano <gitster@pobox.com>, Thomas Gummerer <t.gummerer@gmail.com> Subject: [PATCH v8 0/4] worktree: teach "add" to check out existing branches Date: Mon, 23 Apr 2018 20:38:44 +0100 Message-ID: <20180423193848.5159-1-t.gummerer@gmail.com> (raw) In-Reply-To: <20180415202917.4360-1-t.gummerer@gmail.com> Thanks Eric and Junio for the review the suggestions in the last round. Previous rounds are at <20180121120208.12760-1-t.gummerer@gmail.com>, <20180204221305.28300-1-t.gummerer@gmail.com>, <20180317220830.30963-1-t.gummerer@gmail.com>, <20180317222219.4940-1-t.gummerer@gmail.com>, <20180325134947.25828-1-t.gummerer@gmail.com>, <20180331151804.30380-1-t.gummerer@gmail.com> and <20180415202917.4360-1-t.gummerer@gmail.com>. This round updates the output for "resetting branch ..." to not have braces embedded inside of another pair of braces, and is not correctly printing "checking out '<branch>'" when 'git worktree add <path> <local-branch>' is used. Both these changes are in patch 2/4, the other patches are the same as in the previous round. Interdiff below: diff --git a/builtin/worktree.c b/builtin/worktree.c index f5a5283b39..d52495f312 100644 --- a/builtin/worktree.c +++ b/builtin/worktree.c @@ -353,7 +353,8 @@ static int add_worktree(const char *path, const char *refname, return ret; } -static void print_preparing_worktree_line(const char *branch, +static void print_preparing_worktree_line(int detach, + const char *branch, const char *new_branch, const char *new_branch_force, int checkout_existing_branch) @@ -365,19 +366,27 @@ static void print_preparing_worktree_line(const char *branch, if (!commit) printf_ln(_("Preparing worktree (new branch '%s')"), new_branch_force); else - printf_ln(_("Preparing worktree (resetting branch '%s' (was at %s))"), + printf_ln(_("Preparing worktree (resetting branch '%s'; was at %s)"), new_branch_force, find_unique_abbrev(commit->object.oid.hash, DEFAULT_ABBREV)); } else if (new_branch) { printf_ln(_("Preparing worktree (new branch '%s')"), new_branch); } else { - struct commit *commit = lookup_commit_reference_by_name(branch); - if (!commit) - die(_("invalid reference: %s"), branch); - printf_ln(_("Preparing worktree (detached HEAD %s)"), - find_unique_abbrev(commit->object.oid.hash, - DEFAULT_ABBREV)); + struct strbuf s = STRBUF_INIT; + if (!detach && !strbuf_check_branch_ref(&s, branch) && + ref_exists(s.buf)) + printf_ln(_("Preparing worktree (checking out '%s')"), + branch); + else { + struct commit *commit = lookup_commit_reference_by_name(branch); + if (!commit) + die(_("invalid reference: %s"), branch); + printf_ln(_("Preparing worktree (detached HEAD %s)"), + find_unique_abbrev(commit->object.oid.hash, + DEFAULT_ABBREV)); + } + strbuf_release(&s); } } @@ -481,7 +490,7 @@ static int add(int ac, const char **av, const char *prefix) } } - print_preparing_worktree_line(branch, new_branch, new_branch_force, + print_preparing_worktree_line(opts.detach, branch, new_branch, new_branch_force, checkout_existing_branch); if (new_branch) { Thomas Gummerer (4): worktree: remove extra members from struct add_opts worktree: improve message when creating a new worktree worktree: factor out dwim_branch function worktree: teach "add" to check out existing branches Documentation/git-worktree.txt | 9 +++- builtin/worktree.c | 111 +++++++++++++++++++++++++++++++---------- t/t2025-worktree-add.sh | 26 +++++++--- 3 files changed, 110 insertions(+), 36 deletions(-) -- 2.16.1.74.g7afd1c25cc.dirty
next prev parent reply index Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-01-21 12:02 [PATCH] " Thomas Gummerer 2018-01-21 12:02 ` Robert P. J. Day 2018-01-22 11:18 ` Duy Nguyen 2018-01-22 20:17 ` Thomas Gummerer 2018-02-04 22:13 ` [PATCH v2 0/3] " Thomas Gummerer 2018-02-04 22:13 ` [PATCH v2 1/3] worktree: improve message when creating a new worktree Thomas Gummerer 2018-02-05 2:12 ` Duy Nguyen 2018-02-05 20:13 ` Thomas Gummerer 2018-02-05 20:15 ` Junio C Hamano 2018-02-07 8:51 ` Eric Sunshine 2018-02-09 11:27 ` Thomas Gummerer 2018-02-09 12:08 ` Duy Nguyen 2018-02-10 11:20 ` Duy Nguyen 2018-02-04 22:13 ` [PATCH v2 2/3] worktree: be clearer when "add" dwim-ery kicks in Thomas Gummerer 2018-02-04 22:13 ` [PATCH v2 3/3] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-02-05 2:18 ` Duy Nguyen 2018-02-05 20:20 ` Junio C Hamano 2018-02-05 20:23 ` Thomas Gummerer 2018-02-06 11:53 ` Duy Nguyen 2018-02-09 11:04 ` Thomas Gummerer 2018-03-17 22:08 ` [PATCH v3 0/4] " Thomas Gummerer 2018-03-17 22:08 ` [PATCH v3 1/4] worktree: improve message when creating a new worktree Thomas Gummerer 2018-03-17 22:08 ` [PATCH v3 2/4] worktree: be clearer when "add" dwim-ery kicks in Thomas Gummerer 2018-03-17 22:08 ` [PATCH v3 3/4] worktree: factor out dwim_branch function Thomas Gummerer 2018-03-17 22:08 ` [PATCH v3 4/4] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-03-17 22:22 ` [PATCH v4 0/4] " Thomas Gummerer 2018-03-17 22:22 ` [PATCH v4 1/4] worktree: improve message when creating a new worktree Thomas Gummerer 2018-03-19 17:11 ` Duy Nguyen 2018-03-19 18:09 ` Junio C Hamano 2018-03-20 6:37 ` Eric Sunshine 2018-03-24 20:34 ` Thomas Gummerer 2018-03-17 22:22 ` [PATCH v4 2/4] worktree: be clearer when "add" dwim-ery kicks in Thomas Gummerer 2018-03-20 6:40 ` Eric Sunshine 2018-03-20 7:26 ` Eric Sunshine 2018-03-20 7:32 ` Eric Sunshine 2018-03-24 20:35 ` Thomas Gummerer 2018-03-17 22:22 ` [PATCH v4 3/4] worktree: factor out dwim_branch function Thomas Gummerer 2018-03-17 22:22 ` [PATCH v4 4/4] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-03-20 8:02 ` Eric Sunshine 2018-03-24 21:00 ` Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 0/6] " Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 1/6] worktree: improve message when creating a new worktree Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 2/6] worktree: be clearer when "add" dwim-ery kicks in Thomas Gummerer 2018-03-27 8:59 ` Eric Sunshine 2018-03-30 13:53 ` Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 3/6] worktree: remove force_new_branch from struct add_opts Thomas Gummerer 2018-03-27 9:00 ` Eric Sunshine 2018-03-30 13:55 ` Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 4/6] worktree: factor out dwim_branch function Thomas Gummerer 2018-03-27 9:01 ` Eric Sunshine 2018-03-25 13:49 ` [PATCH v5 5/6] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-03-27 9:04 ` Eric Sunshine 2018-03-30 14:04 ` Thomas Gummerer 2018-03-25 13:49 ` [PATCH v5 6/6] t2025: rename now outdated branch name Thomas Gummerer 2018-03-27 8:58 ` [PATCH v5 0/6] worktree: teach "add" to check out existing branches Eric Sunshine 2018-03-30 14:08 ` Thomas Gummerer 2018-03-31 15:17 ` [PATCH v6 " Thomas Gummerer 2018-03-31 15:17 ` [PATCH v6 1/6] worktree: remove extra members from struct add_opts Thomas Gummerer 2018-03-31 15:18 ` [PATCH v6 2/6] reset: introduce show-new-head-line option Thomas Gummerer 2018-04-02 20:29 ` Junio C Hamano 2018-04-02 22:07 ` Thomas Gummerer 2018-04-02 22:20 ` Thomas Gummerer 2018-04-02 20:34 ` Junio C Hamano 2018-04-02 22:09 ` Thomas Gummerer 2018-03-31 15:18 ` [PATCH v6 3/6] worktree: improve message when creating a new worktree Thomas Gummerer 2018-04-08 9:27 ` Eric Sunshine 2018-03-31 15:18 ` [PATCH v6 4/6] worktree: be clearer when "add" dwim-ery kicks in Thomas Gummerer 2018-03-31 15:18 ` [PATCH v6 5/6] worktree: factor out dwim_branch function Thomas Gummerer 2018-03-31 15:18 ` [PATCH v6 6/6] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-04-01 13:11 ` [PATCH v6 6.5/6] fixup! " Thomas Gummerer 2018-04-09 0:23 ` Eric Sunshine 2018-04-09 19:44 ` Thomas Gummerer 2018-04-09 21:35 ` Eric Sunshine 2018-04-08 10:09 ` [PATCH v6 6/6] " Eric Sunshine 2018-04-08 14:30 ` Thomas Gummerer 2018-04-08 9:08 ` [PATCH v6 0/6] " Eric Sunshine 2018-04-08 14:24 ` Thomas Gummerer 2018-04-09 0:38 ` Eric Sunshine 2018-04-09 19:47 ` Thomas Gummerer 2018-04-09 19:30 ` Thomas Gummerer 2018-04-09 22:06 ` Eric Sunshine 2018-04-11 20:09 ` Thomas Gummerer 2018-04-11 20:48 ` Eric Sunshine 2018-04-11 20:50 ` Thomas Gummerer 2018-04-11 21:14 ` Eric Sunshine 2018-04-15 20:29 ` [PATCH v7 0/4] " Thomas Gummerer 2018-04-15 20:29 ` [PATCH v7 1/4] worktree: remove extra members from struct add_opts Thomas Gummerer 2018-04-15 20:29 ` [PATCH v7 2/4] worktree: improve message when creating a new worktree Thomas Gummerer 2018-04-16 2:09 ` Junio C Hamano 2018-04-23 18:55 ` Thomas Gummerer 2018-04-23 4:27 ` Eric Sunshine 2018-04-23 18:50 ` Thomas Gummerer 2018-04-15 20:29 ` [PATCH v7 3/4] worktree: factor out dwim_branch function Thomas Gummerer 2018-04-15 20:29 ` [PATCH v7 4/4] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-04-23 4:52 ` [PATCH v7 0/4] " Eric Sunshine 2018-04-23 19:38 ` Thomas Gummerer [this message] 2018-04-23 19:38 ` [PATCH v8 1/4] worktree: remove extra members from struct add_opts Thomas Gummerer 2018-04-24 3:26 ` Eric Sunshine 2018-04-23 19:38 ` [PATCH v8 2/4] worktree: improve message when creating a new worktree Thomas Gummerer 2018-04-24 3:58 ` Eric Sunshine 2018-04-23 19:38 ` [PATCH v8 3/4] worktree: factor out dwim_branch function Thomas Gummerer 2018-04-23 19:38 ` [PATCH v8 4/4] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-04-24 4:25 ` Eric Sunshine 2018-04-24 21:56 ` [PATCH v9 0/4] " Thomas Gummerer 2018-04-24 21:56 ` [PATCH v9 1/4] worktree: remove extra members from struct add_opts Thomas Gummerer 2018-04-24 21:56 ` [PATCH v9 2/4] worktree: improve message when creating a new worktree Thomas Gummerer 2018-04-24 21:56 ` [PATCH v9 3/4] worktree: factor out dwim_branch function Thomas Gummerer 2018-04-24 21:56 ` [PATCH v9 4/4] worktree: teach "add" to check out existing branches Thomas Gummerer 2018-04-27 7:36 ` [PATCH v9 0/4] " Eric Sunshine 2018-04-28 16:09 ` Thomas Gummerer 2018-04-30 0:07 ` Junio C Hamano 2018-03-18 0:24 ` [PATCH v3 " Junio C Hamano
Reply instructions: You may reply publically 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=20180423193848.5159-1-t.gummerer@gmail.com \ --to=t.gummerer@gmail.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --cc=pclouds@gmail.com \ --cc=sunshine@sunshineco.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
git@vger.kernel.org list mirror (unofficial, one of many) Archives are clonable: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git Example config snippet for mirrors Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.org/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ AGPL code for this site: git clone https://public-inbox.org/public-inbox.git