Phi*_*ppe 10
没有办法同步2个存储库,100%自动地与您选择的任何解决方案一起演变(为了实现自动同步,您必须立即实现同步或者能够阻止推入git或在TFVC中检入其中一个2队开始同步).
所以,你总是会有冲突,你应该手动合并.您可以找到一个工作流程来阻止其中大部分工作但从未解决所有案例,这些剩余的案例将很难解决......
无论如何,你几乎可以实现你想要的东西(这取决于你的期望:你需要分支支持 - 硬 - ,...)与git-tfs(我已经包含在git-tfs中所有需要这样做但从不用于生产)但它有点棘手.
您需要在存储库中克隆您的TFS存储bare库:
git tfs clone https://server/tfs/TeamCollection $/project/trunk --bare --with-branches
那么你需要在post-receive这个bare存储库的钩子中写下类似的东西(我不记得它是否有效):
branch=$(git rev-parse --symbolic --abbrev-ref $1)
if [ "master" == "$branch" ]; then
branch="default"
fi
git tfs rcheckin --bare -i $branch
Run Code Online (Sandbox Code Playgroud)
有了这个,每次有人推入git存储库时,都会在TFS中签入提交.
为了更加舒适(否则他们在尝试推送时总会遇到无聊的冲突),您可以将git存储库与TFS服务器同步并使用命令执行计划任务(这样他们就会更快地知道新的提交):
git tfs fetch --all
Run Code Online (Sandbox Code Playgroud)
注意:我不记得是否可以在bare存储库中使用此命令(现在我想到了,我不这么认为).否则你将不得不使用git tfs fetch -b=myGitBranch -i tfsRemote每个现有的分支:(
但我确信他们永远无法使用尚未在tfs中创建的分支:( git-tfs工具确实无法从git历史中自动创建TFVC分支.从技术上讲,这是可以实现的,我认为,但从未开发过(因为git-tfs更像是逃避TFVC的工具,而不是检查你的开发工具......)
其他一些东西可能很难或不可能......
我希望它会有所帮助.
PS: