将 git-tfs 与多个 Git-用户一起使用

Use git-tfs with multiple Git-users

此处使用的官方 SCM 是 TFS。我对本地开发分支使用 git-tfs to be able to work. Other devs here at the local branch of our company use StarTeam(是的,那里有比 TFS 更糟糕的 SCM)。现在,我们中的一些人正在考虑从 StarTeam 迁移到 Git 以进行本地开发。

将 git 与 tfs 结合用于多个用户的最佳方式是什么?

我的最佳创意:

  1. 一个中央服务器拥有 TFS 存储库的 1:1 副本(通过 git-tfs,每个脚本大约每小时同步一次)
  2. 从此服务器开发拉取。
  3. Dev 创建分支以实现功能。
  4. 完成后,dev 通过 TFS 提交并删除分支。
  5. Dev 通过第一步将他的更改拉入他的 master 分支。

这个工作流程可行吗?有没有人知道如何设置类似的东西?

首先TFS不是一个SCM,它是一个ALM平台。它提供了两个原生 SCM 选项,TFVC 和 Git.

您最好的选择是在您的 TFS 服务器中创建一个新的团队项目,当系统询问您使用哪个 SCM 提供程序时,请选择 Git。这将为您提供类似于 GitHub 或 Bitbucket 的东西,但企业已准备好进行企业审计。 然后,您可以将这个新的 TFS Git 存储库添加为来源并推送。

如果您仍然必须使用 TFVC,那么我建议您除了上述之外,还可以每天使用 Git-tfs 在此服务器 Git 存储库和 TFVC 之间推送。

  1. 创建一个 MyProject-Git 团队项目 Git 作为 SCM
  2. 用 Git-TF
  3. 克隆你的 MyProject-TFVC
  4. 将 MyProject-Git 添加为本地 Git MyProject-TFVC
  5. 副本的远程
  6. 推送到我的项目-Git

您现在拥有同一代码的 Git 和 TFVC 副本,并且所有历史记录都完好无损。然后,您的每个编码员都可以克隆 MyProject-Git 并在 Git.

中愉快地工作

然后您可以设置一个自动化的计划流程,以定期同步 MyProject-Git 和 MyProject-TFVC。您只需要通知冲突,但由于所有内容都在服务器端并已备份,因此您可以随意进行。

目前的解决方案与我上面概述的基本相同。主要限制:

  • 同事不习惯安慰,尽量避开。 CLI 应用程序是行不通的(遗憾的是)
  • TFS 仍然是 "upstream"(这不是我想要保留的构建过程)
  • 历史必须是正确的(谁在什么时候犯了什么罪)
  • 每个开发人员每次都必须能够提交

所以...:[=​​14=]

  • 主存储库由 git tfs fetch 每 10 分钟同步一次,分支重置为 tfs/branchname
  • 禁止提交到 官方 分支(tfs 分支的副本)。
  • 签入 TFS 由 git tfs rcheckin --no-merge 完成(包装在 GitExtensions 的插件中)。
  • :%s/tfs/TFVC/g

我们 运行 这个设置已经有几个月了,现在有 3 个存储库和多个分支。我的同事们在短时间内就习惯了 git 和这个工作流程 - 一个问题时不时地出现,但它变得越来越少。我有点惊讶,结果如何。