git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] builtin/worktree.c: add option for setting worktree name

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 26, 2016, 18:15 UTC
Message-ID
<xmqqshvzddet.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqq1t3ldpdl.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 29 quoted lines
> Now, if you do the worktree, you may still want the relative
> structure between these two, i.e. if you want to work on two
> different branch combinations of the whole thing, you would want to
> do this:
>
>     $HOME/xyzzy-1/frotz       - borrow from $HOME/xyzzy/frotz
>     $HOME/xyzzy-1/libs/nitfol - likewise for nitfol
>
>     $HOME/xyzzy-2/frotz       - borrow from $HOME/xyzzy/frotz
>     $HOME/xyzzy-2/libs/nitfol - likewise for nitfol
>
> where xyzzy-$n may be for topic-$n branch both in frotz and nitfol.
>
> And explained that way, it becomes clearer that you would want to
> name $HOME/xyzzy-1/frotz worktree after "topic-1", not the default
> name you would get "frotz" (because the default gives you the leaf
> level name of the newly created worktree).
>
> After the discussion above (which may or may not match what you
> raised this topic for), I think a feature to let you override the
> default name makes sense.
>
> It just needs to be explained better to help the users when the
> feature eventually becomes part of Git.  Also, others (especially
> Duy) may have even better ideas (e.g. instead of having to always
> use --name to give custom name for all worktrees, set a "hint" just
> once to help the logic that comes up with the default name give a
> better name), so while the feature may be desirable, your exact
> implementation may or may not be what we eventually want to adopt.

For example, the "frotz" and "nitfol" repositories (i.e. where their worktrees borrow their refs and object stores from) could have a single configuration variable each, i.e.

	(in $HOME/xyzzy/frotz/.git/config)
        [worktree] location = "~/*/frotz"
	(in $HOME/xyzzy/libs/nitfol/.git/config)
        [worktree] location = "~/*/libs/nitfol"
and then the user could do in each of these two repositories
	$ git -C ~/xyzzy/frotz worktree add --by-name xyzzy-1 topic-1
	$ git -C ~/xyzzy/lib/nitfol worktree add --by-name xyzzy-1 topic-1
to get the desired layout instead.

The traditional way may be "create one HERE", and your patch tries to tweak it to "create one at HERE with this NAME". The above attempts to remove the need for specifying the exact location every time a new worktree is created, and instead let you specify the systematic way in which you lay out your worktrees based on their names.

Previous: Barret RennieNext: Barret Rennie
Message 9 of 16 in “builtin/worktree.c: add option for setting worktree name”
  1. builtin/worktree.c: add option for setting worktree nameBarret Rennie, Jun 25, 2016
  2. Junio C HamanoJun 25, 2016
  3. Barret RennieJun 25, 2016
  4. Johannes SixtJun 25, 2016
  5. Barret RennieJun 25, 2016
  6. Barret RennieJun 25, 2016
  7. Junio C HamanoJun 25, 2016
  8. Barret RennieJun 25, 2016
  9. Junio C HamanoJun 26, 2016
  10. Barret RennieJun 27, 2016
  11. Junio C HamanoJun 27, 2016
  12. Eric SunshineJun 26, 2016
  13. Barret RennieJun 27, 2016
  14. Eric SunshineJun 27, 2016
  15. Barret RennieJun 29, 2016
  16. Barret RennieJun 25, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.