Re: [PATCH 1/2] worktree: add CLI/config options for relative path linking
From: Taylor Blau <hidden>
Date: 2024-10-28 00:17:28
On Fri, Oct 25, 2024 at 10:29:37PM +0000, 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).
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 helper function, `write_worktree_linking_files()`, centralizes
the logic for computing and writing either relative or absolute
paths, based on the provided configuration. This function accepts
`strbuf` pointers to both the worktree’s `.git` link and the
repository’s `gitdir`, and then writes the appropriate path to each.Looking at the patch below, it is quite large, and I wonder if it would benefit from being split into smaller pieces. Perhaps factoring out write_worktree_linking_files() in a separate patch would be a good start here? Thanks, Taylor