我的拓扑:
W = Workstation w/VS.2017
R1 = Local TFS repo
R2 = Remote VSTS repo
出于here讨论的原因,我正在运行一个TFS释放步骤,每次将W同步到R1时,都会将R1镜像到R2。
(仅供参考,其他Q&A的Invoke-git
脚本在将STDERR发送到文本文件时会导致未指定的Git错误,因此我决定停止使用它。我选择配置TFS释放步骤以确保在STDERR上不会失败。)
这是从W到R1同步后从R1到R2镜像时TFS释放步骤的输出:
POST git-receive-pack (744 bytes)
Pushing to https://Personal%20Access%20Token:********@customer.visualstudio.com/Applications/_git/Application
To https://customer.visualstudio.com/Applications/_git/Application
= [up to date] master -> master
= [up to date] origin/develop -> origin/develop
- [deleted] Application/master
c13bdc5..81ddbe0 origin/master -> origin/master
updating local tracking ref 'refs/remotes/Application/master'
此操作忽略了R2上R1上的一些提交:
R1
R2
这是从W到R2的测试镜:
D:\Dev\Application>git push --mirror Application
Counting objects: 1, done.
Writing objects: 100% (1/1), 235 bytes | 235.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Analyzing objects... (1/1) (187 ms)
remote: Storing packfile... done (95 ms)
remote: Storing index... done (44 ms)
To https://customer.visualstudio.com/Applications/_git/Application
67e6c4f..81ddbe0 master -> master
* [new branch] develop -> develop
* [new branch] Application/develop -> Application/develop
* [new branch] Application/master -> Application/master
此测试成功将所有提交发送到R2。
这是从T1到R2的另一个TFS生成的镜像,在从W到R2的测试镜像之后:
POST git-receive-pack (885 bytes)
Pushing to https://Personal%20Access%20Token:********@customer.visualstudio.com/Applications/_git/Application
To https://customer.visualstudio.com/Applications/_git/Application
= [up to date] origin/develop -> origin/develop
- [deleted] develop
+ 81ddbe0...67e6c4f master -> master (forced update)
- [deleted] Application/develop
+ c13bdc5...67e6c4f Application/master -> Application/master (forced update)
81ddbe0..3329b73 origin/master -> origin/master
updating local tracking ref 'refs/remotes/Application/develop'
updating local tracking ref 'refs/remotes/Application/master'
在所有这些之后,当我手动从R1到R2运行镜像时,我得到的是:
D:\Agent\_work\37\s>git push --mirror Application
Everything up-to-date
但是R2显然不是最新的。它丢失了67e6c4f3
之后的所有提交。
我在这里做错了什么?如何使R2始终是R1的精确副本?