From: Phillip Wood Date: Tue, 29 Oct 2024 14:55:38 GMT Subject: Re: [PATCH v2 0/5] Allow relative worktree linking to be configured by the user Message-ID: <2ce3998f-ea16-4fd4-9756-c5849d834b1e@gmail.com> In-Reply-To: <20241028-wt_relative_options-v2-0-33a5021bd7bb@pm.me> Hi Caleb Thanks for working on this. I've left so high-level comments on the first three patches. As I said in my comments on patch 1 I think it would be helpful to re-order the changes so that the extension is implementation first and then adjust the implementation to support both relative and absolute paths before adding "--no-relative-paths" to "git worktree add/move/repair". I'd also like to avoid adding a new global variable Best Wishes Phillip On 28/10/2024 19:09, Caleb White wrote: > This patch introduces the `--[no-]relative-paths` CLI option for > `git worktree {add, move, repair}` commands, as well as the > `worktree.useRelativePaths` configuration setting. When enabled, > these options allow worktrees to be linked using relative paths, > enhancing portability across environments where absolute paths > may differ (e.g., containerized setups, shared network drives). > Git still creates absolute paths by default, but these options allow > users to opt-in to relative paths if desired. > > Using the `--relative-paths` option with `worktree {move, repair}` > will convert absolute paths to relative ones, while `--no-relative-paths` > does the reverse. For cases where users want consistency in path handling, > the config option `worktree.useRelativePaths` provides a persistent setting. > > A new extension, `relativeWorktrees`, is added to indicate that at least > one worktree in the repository has been linked with relative paths. This > extension is automatically set when a worktree is created or repaired > using the `--relative-paths` option, or when the > `worktree.useRelativePaths` config is set to `true`. > > The `relativeWorktrees` extension ensures older Git versions do not > attempt to automatically prune worktrees with relative paths, as they > would not not recognize the paths as being valid. > > Signed-off-by: Caleb White > --- > The base for this patch series is obtained by applying the following > patch onto 6a11438f43: > - cw/config-extensions topic (doc: consolidate extensions in git-config > documentation, 2024-10-22, <20241021-cleanup-extension-docs-v1-1-ab02cece3132@pm.me>) > > Link to original patch series: > https://lore.kernel.org/git/20241007-wt_relative_paths-v3-0-622cf18c45eb@pm.me > > --- > Changes in v2: > - Fixed a bug where repositories with valid extensions would be downgraded > to v0 during reinitialization, causing future operations to fail. > - Split patch [1/2] into three separate patches. > - Updated cover letter and commit messages. > - Updated documentation wording. > - Link to v1: https://lore.kernel.org/r/20241025-wt_relative_options-v1-0-c3005df76bf9@pm.me > > --- > Caleb White (5): > worktree: add CLI/config options for relative path linking > worktree: add `write_worktree_linking_files` function > worktree: add tests for worktrees with relative paths > setup: correctly reinitialize repository version > worktree: add `relativeWorktrees` extension > > Documentation/config/extensions.txt | 6 ++ > Documentation/config/worktree.txt | 5 ++ > Documentation/git-worktree.txt | 12 +++ > builtin/worktree.c | 20 ++--- > repository.c | 1 + > repository.h | 1 + > setup.c | 39 +++++++--- > setup.h | 1 + > t/t0001-init.sh | 17 ++++- > t/t2400-worktree-add.sh | 54 ++++++++++++++ > t/t2401-worktree-prune.sh | 3 +- > t/t2402-worktree-list.sh | 22 ++++++ > t/t2403-worktree-move.sh | 22 ++++++ > t/t2406-worktree-repair.sh | 26 +++++++ > t/t2408-worktree-relative.sh | 39 ---------- > worktree.c | 143 ++++++++++++++++++++---------------- > worktree.h | 14 ++++ > 17 files changed, 298 insertions(+), 127 deletions(-) > --- > base-commit: 6a11438f43469f3815f2f0fc997bd45792ff04c0 > change-id: 20241025-wt_relative_options-afa41987bc32 > prerequisite-change-id: 20241020-cleanup-extension-docs-f365868711bf:v1 > prerequisite-patch-id: 60a443b24e92938b9b6f4a016a7bab87e13bf3ea > > Best regards,