diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2020-02-24 10:08:46 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-24 22:04:04 +0100 |
commit | a80c4c22147bae6d9f9b907b81ab3f4d129ab690 (patch) | |
tree | d823fb46b4d4dd239a4c554ac079c954b4d64b05 /worktree.h | |
parent | Git 2.25 (diff) | |
download | git-a80c4c22147bae6d9f9b907b81ab3f4d129ab690.tar.xz git-a80c4c22147bae6d9f9b907b81ab3f4d129ab690.zip |
worktree: improve find_worktree() documentation
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'worktree.h')
-rw-r--r-- | worktree.h | 14 |
1 files 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, |