-
Notifications
You must be signed in to change notification settings - Fork 2.5k
[WIP] Shallow smart transport support #4747
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
Conversation
The first thing is that I've been coming uncomfortably close to the public/private API when I added b720e72 |
The second issue is that state I alluded to above : I've grown to be somewhat dubious of the amount of state going on in So I'm envisioning an API where |
4d157b1
to
47474c7
Compare
This allows us to pick which data from a commit we're interested in. This will be used by the revwalk code, which is only interested in parents' and committer data.
This represents (old-style) grafted commits, a.k.a an array of overridden parents for a commit's OID.
This wires git_repository to open the .git/info/grafts file and load its contents as git_commit_grafts objects.
When doing the initial revwalking, we don't want to pollute the ODB with objects which will get grafted. Alternatively, it might be better to manually prune the cache when reload grafts/shallow
We will need to pass some options to the negotiation step (like depth level for shallow clones)
We need to keep track of the OIDs the server told us to shallow, so we can write those when we're done downloading.
47474c7
to
bb5ef67
Compare
Merged in #6393 |
This is the
Future !protocol-level changes needed to support shallow cloning. It's a complete WIP, but I have a bunch of issues with related code and PR are nice for discussions.Note that it's been a while since I've been chipping at it, so I might not remember all the details. Hopefully, I can still make sense of the problems I've encountered.