我目前正在使用VSTS Build系统制作第三方存储库(我可以真正访问)的夜间镜像克隆。
我基本上按顺序执行以下操作:
git clone --mirror [repository_url]
cd [respository]
git remote add <new_remote> [new_remote_url]
git push [new_remote_url] --mirror -force
当我从开发PC上的git bash终端执行这些步骤时,它没有问题,我可以在new_remote_url存储库中看到镜像克隆存储库,包含所有更改/历史记录等。
在我的开发机器上完成一些示例输出:
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任务相同的步骤时,构建本身就会完成,并且“出现”#39;工作 - 但是当我检查我的存储库时它说它是空的? (在引擎盖下它实际上并非如此)。
差别似乎是VSTS版本正在将GIT远程名称预先修复到分支的前面,这看起来没有正常工作,最终导致存储库从GUI看起来是空的 - 但如果我从本地开发PC重新运行脚本,它将删除这些分支,然后重新正确地重新导入它们。
VSTS中最终git push任务的输出几乎就是这些:
2016-12-28T12:11:37.3149001Z * [new branch] origin / tests / ios - &gt; 产地/测试/ IOS 2016-12-28T12:11:37.3149001Z * [new branch] origin / tests / sprint-8 - &gt;起源/测试/冲刺-8- 2016-12-28T12:11:37.3149001Z ## [section]整理:推遥控器 - 所有
是否有理由在VSTS构建系统中以相同方式预先修复相同的脚本?
答案 0 :(得分:0)
正如Starain-MSFT所指出的那样,使其工作的不同之处在于使用构建中的VSTS Advanced设置将工作文件夹设置为Build Sources Directory,而不是手动执行cmd line changedir步骤。
唯一的变化是在克隆存储库的第一步中,我现在指定一个显式目录名,以便在后面的命令高级设置中使用。