From: Thomas Gummerer <t.gummerer@gmail.com> To: Duy Nguyen <pclouds@gmail.com> Cc: git@vger.kernel.org, Eric Sunshine <sunshine@sunshineco.com> Subject: Re: [PATCH v2 3/3] worktree: teach "add" to check out existing branches Date: Mon, 5 Feb 2018 20:23:32 +0000 Message-ID: <20180205202332.GE2130@hank> (raw) In-Reply-To: <20180205021833.GB17847@duynguyen.dek-tpc.internal> On 02/05, Duy Nguyen wrote: > On Sun, Feb 04, 2018 at 10:13:05PM +0000, Thomas Gummerer wrote: > > - if (opts->new_branch) > > + if (opts->checkout_existing_branch) > > + fprintf(stderr, _(", checking out existing branch '%s'"), > > + refname); > > + else if (opts->new_branch) > > fprintf(stderr, _(", creating new branch '%s'"), opts->new_branch); > > I wonder if "creating branch" and "checkout out branch" are enough. I thought printing the branch name might be a good idea just to show more clearly what the dwim did. Especially if we ever introduce new heuristics, for example to cater for the case you mentioned in an earlier email [1], I thought it might be helpful to also print the branch name. Especially because it makes it clear that the dwim the reporter of the github issue hoped for didn't kick in at this point. That said, I don't really think the branchname is of much use for my usage of 'git worktree add', so I may be overestimating the need for it. I'm happy to remove it if that's preferred. [1]: <CACsJy8D9LS7e=cVE3Fq2qOnxK5++nFg2vjuhkNtRO-Bx0X1j6w@mail.gmail.com> > > @@ -423,14 +427,25 @@ static int add(int ac, const char **av, const char *prefix) > > if (ac < 2 && !opts.new_branch && !opts.detach) { > > int n; > > const char *s = worktree_basename(path, &n); > > - opts.new_branch = xstrndup(s, n); > > - if (guess_remote) { > > - struct object_id oid; > > - const char *remote = > > - unique_tracking_name(opts.new_branch, &oid); > > - if (remote) > > - branch = remote; > > + const char *branchname = xstrndup(s, n); > > + struct strbuf ref = STRBUF_INIT; > > + > > + if (!strbuf_check_branch_ref(&ref, branchname) && > > + ref_exists(ref.buf)) { > > + branch = branchname; > > + opts.checkout_existing_branch = 1; > > + UNLEAK(branch); > > + } else { > > + opts.new_branch = branchname; > > + if (guess_remote) { > > + struct object_id oid; > > + const char *remote = > > + unique_tracking_name(opts.new_branch, &oid); > > Deep indentation may be a sign that it's time to move all this code to > a separate function, maybe dwim_branch() or something. Makes sense, I'll factor it out. Thanks! > > + if (remote) > > + branch = remote; > > + } > > } > > + strbuf_release(&ref); > > } > > > > if (ac == 2 && !opts.new_branch && !opts.detach) {
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 [this message] 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 ` [PATCH v8 " Thomas Gummerer 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=20180205202332.GE2130@hank \ --to=t.gummerer@gmail.com \ --cc=git@vger.kernel.org \ --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