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

[PATCH 1/3] worktree: improve find_worktree() documentation

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Feb 24, 2020, 09:08 UTC
Message-ID
<20200224090848.54321-2-sunshine@sunshineco.com>
In-Reply-To
<20200224090848.54321-1-sunshine@sunshineco.com>

Do a better job of explaining that find_worktree()'s main purpose is to locate a worktree based upon input from a user which may be some sort of shorthand for identifying a worktree rather than an actual path. For instance, one shorthand a user can use to identify a worktree is by unique path suffix (i.e. given worktrees at paths "foo/bar" and "foo/baz", the latter can be identified simply as "baz"). The actual heuristics find_worktree() uses to select a worktree may be expanded in the future (for instance, one day it may allow worktree selection by <id> of the .git/worktrees/<id>/ administrative directory), thus the documentation does not provide a precise description of how matching is performed, instead leaving it open-ended to allow for future enhancement.

While at it, drop mention of the non-NULL requirement of `prefix` since NULL has long been allowed. For instance, prefix_filename() has explicitly allowed NULL since 116fb64e43 (prefix_filename: drop length parameter, 2017-03-20), and find_worktree() itself since e4da43b1f0 (prefix_filename: return newly allocated string, 2017-03-20).

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---
 worktree.h | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/worktree.h b/worktree.h
index caecc7a281..b8a851b92b 100644
--- a/worktree.h
+++ b/worktree.h
@@ -44,8 +44,18 @@ int submodule_uses_worktrees(const char *path);
 const char *get_worktree_git_dir(const struct worktree *wt);
 
 /*
- * Search a worktree that can be unambiguously identified by
- * "arg". "prefix" must not be NULL.
+ * Search for the worktree identified unambiguously by `arg` -- typically
+ * supplied by the user via the command-line -- which may be a pathname or some
+ * shorthand uniquely identifying a worktree, thus making it convenient for the
+ * user to specify a worktree with minimal typing. For instance, if the last
+ * component (say, "foo") of a worktree's pathname is unique among worktrees
+ * (say, "work/foo" and "work/bar"), it can be used to identify the worktree
+ * unambiguously.
+ *
+ * `prefix` should be the `prefix` handed to top-level Git commands along with
+ * `argc` and `argv`.
+ *
+ * Return the worktree identified by `arg`, or NULL if not found.
  */
 struct worktree *find_worktree(struct worktree **list,
 			       const char *prefix,
-- 
2.25.1.526.gf05a752211
Previous: Junio C HamanoNext: Junio C Hamano
Message 7 of 8 in “BUG: git worktree add directory-path fails due to over-aggressive disallowing of worktrees with same suffix”
  1. Cameron GunninFeb 11, 2019
  2. Eric SunshineFeb 12, 2019
  3. 0/3 git-worktree: fix "add" being fooled by suffix matchingEric Sunshine, Feb 24, 2020
  4. 2/3 worktree: add utility to find worktree by pathnameEric Sunshine, Feb 24, 2020
  5. 3/3 worktree: don't allow "add" validation to be fooled by suffix matchingEric Sunshine, Feb 24, 2020
  6. Junio C HamanoFeb 24, 2020
  7. 1/3 worktree: improve find_worktree() documentationEric Sunshine, Feb 24, 2020
  8. Junio C HamanoFeb 24, 2020

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.