Skip to content

Comments

feat(rev_store): store references for tip negotiation#13659

Merged
Alizter merged 1 commit intoocaml:mainfrom
Alizter:push-sptnwslyxvry
Feb 23, 2026
Merged

feat(rev_store): store references for tip negotiation#13659
Alizter merged 1 commit intoocaml:mainfrom
Alizter:push-sptnwslyxvry

Conversation

@Alizter
Copy link
Collaborator

@Alizter Alizter commented Feb 23, 2026

We now store refs of fetched commits to aid later negotiation.

See doc/dev/rev-store.md in this PR for a detailed explanation of the mechanism.

Signed-off-by: Ali Caglayan <alizter@gmail.com>
Copy link
Contributor

@shym shym left a comment

Choose a reason for hiding this comment

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

I confirm that this solves the issue for me, thanks!
Compared to an implementation that would use an explicit --negotiation-tip= using the last fetch from that repository, I understand we gain possibly if some repositories share some history but I wonder about the longer-term performance cost and the privacy leak due to negotiating with all the tips of all the repos we’ve pulled from (I’m not sure how to evaluate them, though).

@Alizter
Copy link
Collaborator Author

Alizter commented Feb 23, 2026

Hmm I suppose you are right. Currently we send all the tips, even if they aren't direct related to the remote. I suppose we could improve this by restricting the tips per remote and passing a glob to git. This won't be a shell expansion but should be something that git knows how to interpret without having to choose the exact tips ourselves. This is probably something I can handle in a follow up to this PR however.

@Alizter Alizter merged commit c12a8f9 into ocaml:main Feb 23, 2026
47 of 54 checks passed
@Alizter Alizter deleted the push-sptnwslyxvry branch February 23, 2026 21:00
@Alizter
Copy link
Collaborator Author

Alizter commented Feb 23, 2026

@shym I've opened #13671 to track this concern.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dune fetches full git history on every fetch

4 participants