Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate git directory support #201

Open
wants to merge 3 commits into
base: 1.3
Choose a base branch
from

Conversation

chris114782
Copy link

In #200 I highlighted that the library does not support submodules.

This is because in a submodule does not store its .git folder inside the checked out repository, instead .git is a file that has a reference to the actual location of the .git directory.

This is documented here

You can manually reproduce this by doing git clone --separate-git-dir=/somewhere/else your-repo-url

This PR adds support for such a set up by detecting that .git is a file instead of a directory and attempting to read the path to the real directory from it.

@chris114782
Copy link
Author

I was aware of the failing formatting check, but that is existing bad formatting and I was loathe to change formatting outside of code I was modifying myself.

@lyrixx
Copy link
Member

lyrixx commented May 22, 2023

Can you rebase your PR? thanks

@chris114782 chris114782 force-pushed the feature/separate-git-directory-support branch from 2694243 to 71b85b8 Compare July 4, 2023 12:59
if (!preg_match('/^gitdir: ?(.+)$/', file_get_contents($realGitDir . '/.git'), $matches)) {
throw new InvalidArgumentException(sprintf('Directory "%s" contains a .git file, but it is not in the expected format', $realGitDir));
}
$foundGitPath = realpath($realGitDir . DIRECTORY_SEPARATOR . $matches[1]);
Copy link

@tsterker tsterker Feb 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@chris114782 This assumes that the gitdir is a relative path, which might not be true.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll try and take a look this weekend, it's been a few months (nearly a year now!) since I looked at this and I need to get my head back into it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants