-
Notifications
You must be signed in to change notification settings - Fork 506
[fix] Add git worktree support for ratchet functionality #2779
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
base: main
Are you sure you want to change the base?
Conversation
Git ratchet functionality failed in worktree directories with "Cannot find git repository in any parent directory" because JGit's RepositoryCache.FileKey.isGitRepository() doesn't properly recognize worktree git directories. Worktrees have a different structure where some files (objects, refs, etc.) are shared via a commondir file pointing to the main repository. This commit adds a custom isGitRepository() method that detects worktrees by checking for the commondir file and validates them appropriately. Also adds comprehensive test coverage for worktree support. Fixes diffplug#2728 Co-Authored-By: Claude <noreply@anthropic.com>
|
I sure would love it if this was merged in. Any idea when it'll happen? |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as abuse.
This comment was marked as abuse.
|
Happy to merge this, but the test failures in the maven tests seem to be real. |
Sorry if I stirred up any drama! That definitely wasn't my intent. I'd very much like this merged, but it doesn't seem useful to merge it with failing tests. So I'm okay to wait until it's all the way done. I'd lend a hand, but honestly, it'd be vibe coded if I did. If you're okay with Gen AI contributions, I'll help out. Otherwise, I'll leave it to you all. |
|
Let me see if I can resolve the Maven issues |
lol, not your fault at all. All is well. It's just a backburner project for many different people who have never met in person, sometimes stuff builds up without a face to face :). I represent the company that puts its name on the tin, so I have to review for security before anything goes in, so I end up being the choke point when I'm crunching (as I have been the past few months).
Gen AI is welcome, but please run CI locally to before opening a PR. I don't care how the hot dog gets made, I just don't want a notification everytime a new intermediate step is taken. |
|
As soon as this gets resolved I'll cut a release. If it doesn't get resolved by Friday the train will leave without it, but it's welcome on the next train. |
Git ratchet functionality failed in worktree directories with "Cannot find git repository in any parent directory" because JGit's RepositoryCache.FileKey.isGitRepository() doesn't properly recognize worktree git directories.
Worktrees have a different structure where some files (objects, refs, etc.) are shared via a commondir file pointing to the main repository. This commit adds a custom isGitRepository() method that detects worktrees by checking for the commondir file and validates them appropriately.
Also adds comprehensive test coverage for worktree support.
Fixes #2728
Please DO NOT FORCE PUSH. Don't worry about messy history, it's easier to do code review if we can tell what happened after the review, and force pushing breaks that.
Please make sure that your PR allows edits from maintainers. Sometimes it's faster for us to just fix something than it is to describe how to fix it.
After creating the PR, please add a commit that adds a bullet-point under the
[Unreleased]section of CHANGES.md, plugin-gradle/CHANGES.md, and plugin-maven/CHANGES.md which includes:If your change only affects a build plugin, and not the lib, then you only need to update the
plugin-foo/CHANGES.mdfor that plugin.If your change affects lib in an end-user-visible way (fixing a bug, updating a version) then you need to update
CHANGES.mdfor both the lib and all build plugins. Users of a build plugin shouldn't have to refer to lib to see changes that affect them.This makes it easier for the maintainers to quickly release your changes :)