[registries] Fix git registry path#20
Closed
klalumiere wants to merge 1 commit intomicrosoft:mainfrom
Closed
Conversation
Collaborator
|
First, thanks for the PR and thanks for trying out registries! The intent is that the hash is not a commit id, but rather a git tree: This prevents ports from being duplicated for every registry commit -- instead, they are checked out exactly once per unique content. @strega-nil to improve docs & tooling around this |
Contributor
Author
OMG, I didn't think about that! 😳 😆 Super, thanks! 🙂 |
vicroms
added a commit
to vicroms/vcpkg-tool
that referenced
this pull request
Aug 28, 2025
# This is the 1st commit message: WIP # The commit message #2 will be skipped: # Fix build error # The commit message microsoft#3 will be skipped: # Implement bulk operation # The commit message microsoft#4 will be skipped: # Remove unused struct # The commit message microsoft#5 will be skipped: # Follow redirects # The commit message microsoft#6 will be skipped: # Get HTTP response code # The commit message microsoft#7 will be skipped: # Map URL response code to the correct index # The commit message microsoft#8 will be skipped: # Map URL response code to the correct index # The commit message microsoft#9 will be skipped: # Undo changes to workflows # The commit message microsoft#10 will be skipped: # Implement store to asset cache # The commit message microsoft#11 will be skipped: # handle file:// protocol # The commit message microsoft#12 will be skipped: # Implement try_download_file # The commit message microsoft#13 will be skipped: # Add missing calls to curl_easy_cleanup # The commit message microsoft#14 will be skipped: # Fix global init # The commit message microsoft#15 will be skipped: # Replace all calls in downloads.cpp and fix unit tests # The commit message microsoft#16 will be skipped: # use libcurl to submit metrics payload # The commit message microsoft#17 will be skipped: # Use Schannel on Windows # The commit message microsoft#18 will be skipped: # Apply suggestions from code review # # Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> # The commit message microsoft#19 will be skipped: # Fix unit test # The commit message microsoft#20 will be skipped: # Change curl error messages # The commit message microsoft#21 will be skipped: # generate message map # The commit message microsoft#22 will be skipped: # Always call multi_remove_handle # The commit message microsoft#23 will be skipped: # Fix end-to-end tests # The commit message microsoft#24 will be skipped: # Cleanup header lists # The commit message microsoft#25 will be skipped: # curl global init order # The commit message microsoft#26 will be skipped: # Use external libcurl on non-Windows # The commit message microsoft#27 will be skipped: # Install libcurl4 dev package on Linux # The commit message microsoft#28 will be skipped: # Disable metrics by default in debug builds # The commit message microsoft#29 will be skipped: # Set user agent using CURLOPT_USERAGENT # The commit message microsoft#30 will be skipped: # curl initialization again
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Right now, when using a git registry, the path searched for a port
CONTROLorvcpkg.jsonfile is, for instance,$HOME/.cache/vcpkg/registries/git-trees/SHA/. I think the path searched should at least include the port name, that is, at least be$HOME/.cache/vcpkg/registries/git-trees/SHA/PORT_NAME/. Otherwise, each registry could only have a single port. That being said, it could be a good idea to have the same default layout than the official vcpkg repository, that is, search in the directory$HOME/.cache/vcpkg/registries/git-trees/SHA/ports/PORT_NAME/. This is what I implement here.I understand from the specifications that the
portspart of the path will be configurable invcpkg-configuration.jsonat some point via thepath:attribute. What I implement here is a default behavior that will allow to start using git registries immediately.Reproduction
Related repositories:
https://github.com/klalumiere/toyprojectvcpkg
https://github.com/klalumiere/vcpkg-overlays
without my fix, this fails with a message
Listing the directory
/home/klalumiere/.cache/vcpkg/registries/git-trees/49fdf3529f1a0bd69c6ef113929bd534e6b89d55confirmes that it contains bothpersonaldependency/vcpkg.jsonandports/personaldependency/vcpkg.json.With my fix, the example above works fine.