module Git::PathResolver

Resolves and normalizes the filesystem paths that locate a Git repository

‘PathResolver` is the single home for the path-resolution logic used by the `Git` factory methods ({Git.open}, {Git.bare}, {Git.init}, and {Git.clone}). It computes the absolute working-directory, repository (`.git`), and index paths from the caller-supplied values, following the same rules Git itself uses (including gitdir-pointer files for submodules and linked worktrees).

A relative path given by the caller is expanded against the process working directory, as git does for a path on its command line. Only the defaults are derived from the layout: an omitted repository is ‘<working_directory>/.git` and an omitted index is `<repository>/index`.

@api private