Fix migrations where .git/objects is a symlink
#6042
Merged
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.
Android's
repotool creates.git/objectsas a symlink to a place outside the.gitdirectory for unknown reasons. When that happens, Git operations where we set the working directory to that directory fail. This is because when Git performs discovery on the working directory, it first canonicalizes the path, which takes it outside of the.gitdirectory and it then fails to find anything that looks like a Git repository.In our codebase, we set the path to the object directory root in a couple of places which cause this problem. To avoid this problem, simply join the repository root with
.., which is always applied before canonicalization and will result in the path being properly set to the.gitdirectory, which results ingit lfs migrate importworking correctly in this configuration.Fixes #5426
Fixes #6030