-
Notifications
You must be signed in to change notification settings - Fork 708
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
Unable to create 'myrepo.git/./packed-refs.lock': File exists. Confirmed that ubuntu volume is case sensitive #590
Comments
Ooh, this is interesting; I haven't seen one of these before. We've had lots of reports of failure to lock refs, but always with branch/tag names, never the pack-refs file. Also, the
|
there's a LOT of refs, so I won't copy-paste the output here. |
Yeah, 2 million refs is quite a few. How about |
Unfortunately nothing :( |
and I'm realizing it's worth calling out-- this is the result of When I run |
I'm interested in both a short-term and a long-term fix here. I'd love to see this issue resolved, but I'm also curious if there's a set of 'vanilla git' operations I can run here that are equivalent to the failed steps in |
So, after a bit of digging:
This comes from the gc step:
As such, it did complete the import and was just "doing cleanup". The cleanup commands consist of running
and you should be all set. However, as far as long term solutions, from every angle I look at this the only thing I can imagine is an ill-timed simultaneous git process of some sort running in the repo while it was trying to repack. That could certainly trigger this problem. The best way to tell would be trying to redo the filter-repo in another fresh clone, and be careful to not allow other git processes (anything not started by the |
thank you, this is very helpful!
what might lead to this? I know that there's no user-triggered |
ooh, fascinating. I tried to re-run git gc and get:
running I was able to successfully run
but since this is a mirror clone, at the end of this, |
If there's no user-triggered
Sorry, I forgot you mentioned this was a mirror clone. The
Yes, older versions of git-filter-repo by default would create a replace ref for each rewritten commit, which provided a way for you to feed old (unabbreviated) commit IDs to the git-cli and have git translate that to the new commit IDs. These replace refs aren't pushed by default (because only refs/heads/* and refs/tags/* are pushed by default, not refs/replace/), and existing git forges ignore them, so they are only useful locally. I found most folks ended up not using them. Anyway, if you nuke refs/replace/, you should see the expected number of refs. |
trying to run
git-filter-repo
on a large repo:I verified that the volume is case sensitive via:
The text was updated successfully, but these errors were encountered: