From: Duy Nguyen <pclouds@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: Marketa Calabkova <mcalabkova@suse.cz>, Git List <git@vger.kernel.org>
Subject: Re: Worktree creation race
Date: Fri, 1 Feb 2019 20:16:59 +0700 [thread overview]
Message-ID: <20190201131659.GA30564@ash> (raw)
In-Reply-To: <CACsJy8D+zvgtw8RuBefYQsYrvn_vQT1dUO3Veg5ZtfQa2u5QKA@mail.gmail.com>
On Fri, Feb 01, 2019 at 02:06:43PM +0700, Duy Nguyen wrote:
> worrying about races like this. The mkdir loop would be one way to go.
> But I'm going to add a new option to let the user control this
> directory name. This is necessary since this name is now exposed via
> "worktrees/<name>" reference space and should also be reported in "git
> worktree list". Avoiding the race is a nice bonus.
I'm not going to bother you with code yet (although if you want, you
can check out branch worktree-name on my gitlab repo), but this is
what the user facing changes look like. Looking good?
PS. I think this also calls for a command to rename working trees.
Sigh.. this worktree thingy never ends.
-- 8< --
diff --git a/Documentation/git-worktree.txt b/Documentation/git-worktree.txt
index 18469e202e..d5db69dec7 100644
--- a/Documentation/git-worktree.txt
+++ b/Documentation/git-worktree.txt
@@ -9,7 +9,7 @@ git-worktree - Manage multiple working trees
SYNOPSIS
--------
[verse]
-'git worktree add' [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] <path> [<commit-ish>]
+'git worktree add' [-f] [--detach] [--checkout] [--lock] [-b <new-branch>] [--name <name>] <path> [<commit-ish>]
'git worktree list' [--porcelain]
'git worktree lock' [--reason <string>] <worktree>
'git worktree move' <worktree> <new-path>
@@ -195,6 +195,13 @@ This can also be set up as the default behaviour by using the
--reason <string>::
With `lock`, an explanation why the working tree is locked.
+--name <name>::
+ Name of the working tree. Each working tree must have a unique
+ name. This is also the directory name containing all working
+ tree's specific information under `$GIT_COMMON_DIR/worktrees`.
+ If `--name` is not given, the name is based on basename(3)
+ optionally with a number suffix to make it unique.
+
<worktree>::
Working trees can be identified by path, either relative or
absolute.
@@ -323,11 +330,15 @@ details on a single line with columns. For example:
------------
$ git worktree list
-/path/to/bare-source (bare)
-/path/to/linked-worktree abcd1234 [master]
-/path/to/other-linked-worktree 1234abc (detached HEAD)
+(main) /path/to/bare-source (bare)
+linked /path/to/linked-worktree abcd1234 [master]
+other /path/to/other-linked-worktree 1234abc (detached HEAD)
------------
+The first column is the name of the working tree. The second column is
+the location of the working tree. The third column is the short commit
+name of the current branch. The branch name is put in square brackets.
+
Porcelain Format
~~~~~~~~~~~~~~~~
The porcelain format has a line per attribute. Attributes are listed with a
@@ -341,10 +352,12 @@ $ git worktree list --porcelain
worktree /path/to/bare-source
bare
+name linked
worktree /path/to/linked-worktree
HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
branch refs/heads/master
+name other
worktree /path/to/other-linked-worktree
HEAD 1234abc1234abc1234abc1234abc1234abc1234a
detached
-- 8< --
--
Duy
next prev parent reply other threads:[~2019-02-01 13:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-15 14:03 Worktree creation race Marketa Calabkova
2019-01-28 12:58 ` Marketa Calabkova
2019-02-01 6:27 ` Eric Sunshine
2019-02-01 7:06 ` Duy Nguyen
2019-02-01 13:16 ` Duy Nguyen [this message]
2019-02-01 19:54 ` Eric Sunshine
2019-02-01 18:06 ` 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=20190201131659.GA30564@ash \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=mcalabkova@suse.cz \
--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.