While authoring vcpkg_from_git to authenticated servers documentation,
@JavierMatosD and I discovered some failure modes that are not clear in
the output.
Example with REF set to a branch name:
```console
The port under test is:
vcpkg_from_git(
OUT_SOURCE_PATH out
URL https://github.com/microsoft/vcpkg
REF 2024.01.12
)
========== BEFORE ===============
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg 2024.01.12...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:141 (message):
unable to rev-parse 2024.01.12 after fetching git repository
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.8 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg2%2Finstalled%2Fvcpkg%2Fissue_body.md
========== AFTER ================
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg 2024.01.12...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:142 (message):
After fetching 2024.01.12, the target ref 2024.01.12 appears inaccessible.
A common cause of this failure is setting REF to a named branch or tag
rather than a commit SHA. REF must be a commit SHA. If the git server
does not advertise commit SHAs (uploadpack.allowReachableSHA1InWant is
false), you can set FETCH_REF to a named branch in which the desired commit
SHA is in the history. For example, you may be able to fix this error by
changing "REF 2024.01.12" to "REF a-commit-sha FETCH_REF 2024.01.12". (git
rev-parse 2024.01.12 failed)
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.9 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
```
Example with REF ste to a branch name with FETCH_REF set:
```console
PS D:\test> run-test
The following packages are not installed:
test-port:x64-windows
The following packages are not installed:
test-port:x64-windows
The port under test is:
vcpkg_from_git(
OUT_SOURCE_PATH out
URL https://github.com/microsoft/vcpkg
REF 2024.01.12
FETCH_REF master
)
========== BEFORE ===============
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg master...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:141 (message):
unable to rev-parse 2024.01.12 after fetching git repository
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.6 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg2%2Finstalled%2Fvcpkg%2Fissue_body.md
========== AFTER ================
Computing installation plan...
The following packages will be built and installed:
test-port:x64-windows@1 -- D:\test\test-port
Detecting compiler hash for triplet x64-windows...
Installing 1/1 test-port:x64-windows@1...
Building test-port:x64-windows@1...
-- Installing port from location: D:\test\test-port
-- Fetching https://github.com/microsoft/vcpkg master...
CMake Error at scripts/cmake/vcpkg_from_git.cmake:138 (message):
After fetching master, the target ref 2024.01.12 appears inaccessible. A
common cause of this failure is setting REF to a named branch or tag rather
than a commit SHA. REF must be a commit SHA. (git rev-parse 2024.01.12
failed)
Call Stack (most recent call first):
D:/test/test-port/portfile.cmake:1 (vcpkg_from_git)
scripts/ports.cmake:170 (include)
error: building test-port:x64-windows failed with: BUILD_FAILED
Elapsed time to handle test-port:x64-windows: 1.5 s
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+test-port
You can submit a new issue at:
https://github.com/microsoft/vcpkg/issues/new?title=[test-port]+Build+error+on+x64-windows&body=Copy+issue+body+from+D%3A%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md
```
---------
Co-authored-by: Thomas1664 <46387399+Thomas1664@users.noreply.github.com>