Fix repo create
for repo dirs other than .git
#8563
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request replaces the current implementation of the
isLocalRepo
function inrepo/create/create.go
, which is based on--git-dir
and wrongly assumes that if and only if the current directory is on the top level of a Git repository, then the output is a) a relative path, which b) points to the .git directory.For an example that demonstrates why these assumptions are incorrect, see #8472.
To figure out whether we’re a work tree at all, the proposed implementation uses
TopLevelDir
instead ofGitDir
.(Calling
ToplevelDir
is equivalent togit rev-parse --show-toplevel
.)It also introduces an
isToplevel
function, which callsPathFromRoot
internally.(Calling
PathFromRoot
is equivalent togit rev-parse --show-prefix
.)Fixes #8472.