我目前正在使用VSTS构建系统来制作第三方存储库的夜间镜像克隆(我有真正的访问权限)。
我基本上是按顺序执行以下操作:
git clone --mirror [repository_url]
cd [respository]
git remote add <new_remote> [new_remote_url]
git push [new_remote_url] --mirror -force当我在我的开发PC上从git终端执行这些步骤时,它可以正常工作,我可以在我的new_remote_url存储库中看到镜像克隆存储库,包含所有的更改/历史/等等。
一些示例输出在我的dev机器上完成时是这样的:
2016-12-28T12:11:37.3149001Z * [new branch] tests/ios -> tests/ios
2016-12-28T12:11:37.3149001Z * [new branch] tests/sprint-8 -> tests/sprint-8
2016-12-28T12:11:37.3149001Z ##[section]Finishing: Push remote --all现在,当我试图通过VSTS夜间构建来执行这些与CMD任务序列相同的步骤时,构建本身就完成了,并且“似乎”工作了--但是当我检查我的存储库时,它说它是空的吗?(BUt在引擎盖下面,实际上不是)。
不同之处似乎是VSTS版本将GIT远程名称预先固定在分支的前面,这似乎不能正常工作,最终存储库在GUI上看起来是空的,但是如果我在本地开发PC上重新运行脚本,它将在重新导入这些分支之前删除它们。
VSTS中的最终git推送任务的输出大致遵循以下思路:
2016-12-28T12:11:37.3149001Z *新分支来源/测试/ios ->原产地/测试/ios 2016-12-28T12:11:37.3149001Z *新分支来源/测试/sprint-8 ->原产地/测试/sprint-8 2016-12-28T12:11:37.3149001Z ##sectionFinishing: Push remote -all
为什么相同的脚本会在VSTS构建系统中以这样的方式预先修复呢?
发布于 2017-01-05 21:43:19
正如Starain亲切地指出的,让它工作的不同之处是使用构建中的VSTS高级设置将工作文件夹设置为,而不是手动执行cmd行更改步骤。
唯一的改变是克隆存储库的第一步,根据这个步骤,我现在指定一个显式目录名,以便在以后的命令高级设置中使用。
https://stackoverflow.com/questions/41440391
复制相似问题