在vcpkg Git注册表中更新包端口版本遇阻求助
我通过Git仓库搭建自定义vcpkg注册表,除教程最后一步外其余步骤均已完成。完成步骤5后,我移除了portfile.cmake中的PREFER_NINJA行——由于包(beicode)本身未改动但端口配置有变更,需要将端口版本从0升级至1。
在注册表根目录执行以下命令时:
vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version beicode --verbose
始终返回错误:
error: checked-in files for beicode have changed but the version was not updated
version: 1.0.0
old SHA: eff355de4f3f43319f2e08e7616fea1e024bea29
new SHA: c9d2c5dec1ca77dc200be4a257dd37cefbfd29d4
Did you remember to update the version or port version?
Use --overwrite-version to bypass this check
See https://learn.microsoft.com/vcpkg/commands/add-version?WT.mc_id=vcpkg_inproduct_cli#--overwrite-version for more information.
No files were updated
我已提交修改,请问应使用哪个命令完成端口版本更新?
当前versions/b-/beicode.json内容:
{ "versions": [ { "version": "1.0.0", "git-tree": "eff355de4f3f43319f2e08e7616fea1e024bea29" } ] }
当前versions/baseline.json内容:
{ "default": { "beicode": { "baseline": "1.0.0", "port-version": 0 } } }
你需要在命令中明确指定端口版本升级,并跳过已提交变更的SHA校验,正确命令如下:
vcpkg --x-builtin-ports-root=./ports --x-builtin-registry-versions-dir=./versions x-add-version beicode --port-version=1 --overwrite-version --verbose
执行该命令后会自动完成以下操作:
- 在
versions/b-/beicode.json中新增一条版本条目,保留原1.0.0版本的同时,添加带有新SHA值的1.0.0#1版本记录 - 将
versions/baseline.json中beicode的port-version字段更新为1
如果不想使用--overwrite-version参数,也可以先撤销已提交的变更,执行带--port-version=1的x-add-version命令后,再重新提交所有变更,这样SHA校验就能正常通过。
内容的提问来源于stack exchange,提问作者Juan

