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 v9 0/4] worktree: teach "add" to check out existing branches
Date: Tue, 24 Apr 2018 22:56:31 +0100 [thread overview]
Message-ID: <20180424215635.9183-1-t.gummerer@gmail.com> (raw)
In-Reply-To: <20180423193848.5159-1-t.gummerer@gmail.com>
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>,
<20180415202917.4360-1-t.gummerer@gmail.com> and
<20180423193848.5159-1-t.gummerer@gmail.com>.
Thanks Eric for the review and the suggestions on the previous round.
Changes since the previous round:
- UNLEAK new_branch after it was xstrndup'd
- update the commit message of 2/4 according to Eric's suggestions
- make force_new_branch a boolean flag in
print_preparing_worktree_line, instead of using it as the branch
name. Instead use new_branch as the new branch name everywhere in
that function.
- get rid of the ckeckout_existing_branch flag
Interdiff below:
diff --git a/builtin/worktree.c b/builtin/worktree.c
index d52495f312..d3aeb4877d 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -356,18 +356,15 @@ static int add_worktree(const char *path, const char *refname,
static void print_preparing_worktree_line(int detach,
const char *branch,
const char *new_branch,
- const char *new_branch_force,
- int checkout_existing_branch)
+ int force_new_branch)
{
- if (checkout_existing_branch) {
- printf_ln(_("Preparing worktree (checking out '%s')"), branch);
- } else if (new_branch_force) {
- struct commit *commit = lookup_commit_reference_by_name(new_branch_force);
+ if (force_new_branch) {
+ struct commit *commit = lookup_commit_reference_by_name(new_branch);
if (!commit)
- printf_ln(_("Preparing worktree (new branch '%s')"), new_branch_force);
+ printf_ln(_("Preparing worktree (new branch '%s')"), new_branch);
else
printf_ln(_("Preparing worktree (resetting branch '%s'; was at %s)"),
- new_branch_force,
+ new_branch,
find_unique_abbrev(commit->object.oid.hash,
DEFAULT_ABBREV));
} else if (new_branch) {
@@ -390,19 +387,17 @@ static void print_preparing_worktree_line(int detach,
}
}
-static const char *dwim_branch(const char *path, const char **new_branch,
- int *checkout_existing_branch)
+static const char *dwim_branch(const char *path, const char **new_branch)
{
int n;
const char *s = worktree_basename(path, &n);
const char *branchname = xstrndup(s, n);
struct strbuf ref = STRBUF_INIT;
+ UNLEAK(branchname);
if (!strbuf_check_branch_ref(&ref, branchname) &&
ref_exists(ref.buf)) {
- *checkout_existing_branch = 1;
strbuf_release(&ref);
- UNLEAK(branchname);
return branchname;
}
@@ -421,7 +416,6 @@ static int add(int ac, const char **av, const char *prefix)
struct add_opts opts;
const char *new_branch_force = NULL;
char *path;
- int checkout_existing_branch = 0;
const char *branch;
const char *new_branch = NULL;
const char *opt_track = NULL;
@@ -469,8 +463,7 @@ static int add(int ac, const char **av, const char *prefix)
}
if (ac < 2 && !new_branch && !opts.detach) {
- const char *s = dwim_branch(path, &new_branch,
- &checkout_existing_branch);
+ const char *s = dwim_branch(path, &new_branch);
if (s)
branch = s;
}
@@ -490,8 +483,7 @@ static int add(int ac, const char **av, const char *prefix)
}
}
- print_preparing_worktree_line(opts.detach, branch, new_branch, new_branch_force,
- checkout_existing_branch);
+ print_preparing_worktree_line(opts.detach, branch, new_branch, !!new_branch_force);
if (new_branch) {
struct child_process cp = CHILD_PROCESS_INIT;
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 | 103 ++++++++++++++++++++++++++++++-----------
t/t2025-worktree-add.sh | 26 ++++++++---
3 files changed, 102 insertions(+), 36 deletions(-)
--
2.16.1.74.g7afd1c25cc.dirty
next prev parent reply other threads:[~2018-04-24 21:57 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-21 12:02 [PATCH] worktree: teach "add" to check out existing branches 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 ` [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 ` Thomas Gummerer [this message]
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 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180424215635.9183-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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.