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

时间:2015-03-04 09:43:32

标签: git version-control tfs git-tfs

这里的官方SCM是TFS。我使用git-tfs来工作。我们公司的本地分支机构的其他开发人员使用StarTeam用于本地开发分支(是的,那里的SCM比TFS差)。现在,我们中的一些人正在考虑从StarTeam迁移到Git以进行本地开发。

对于多个用户,将git与tfs结合使用的最佳方法是什么?

我最好的主意:

  1. 一个中央服务器保存TFS存储库的1:1副本(通过git-tfs,每小时左右同步一次)
  2. Dev pull from this server。
  3. Dev创建分支以实现功能。
  4. 完成后,dev通过TFS提交并删除分支。
  5. Dev通过第一步将他的更改提取到他的主分支中。
  6. 这个工作流程可能有效吗?有没有人有经验可以设置这样的东西?

2 个答案:

答案 0 :(得分:1)

首先TFS不是SCM,它是ALM平台。它提供了两个本机SCM选项,TFVC和Git。

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

如果您仍然需要使用TFVC,那么我建议除了上述内容之外,您还可以在此服务器Git repo和TFVC之间每天使用Git-tfs。

  1. 使用Git作为SCM创建MyProject-Git团队项目
  2. 使用Git-TF克隆MyProject-TFVC
  3. 将MyProject-Git添加为MyProject-TFVC的本地Git副本的遥控器
  4. 推送到MyProject-Git
  5. 您现在拥有相同代码的Git和TFVC副本,所有历史记录都保持不变。然后你的每个程序员都可以克隆MyProject-Git并在Git中愉快地工作。

    然后,您可以设置自动和预定的流程,以定期的节奏同步MyProject-Git和MyProject-TFVC。您需要通知的只是冲突,但由于一切都是服务器端并备份,您可以在闲暇时这样做。

答案 1 :(得分:0)

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

  • 我的同事不习惯安慰,尽量避免使用它们。 CLI应用程序是不行的(遗憾的)
  • TFS仍在"上游" (它不是我想要保持活着的构建过程)
  • 历史必须是正确的(谁承诺什么时候和什么时候)
  • 每个开发人员都必须能够每次都提交

所以...:

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

我们现在为3个存储库和多个分支运行此设置已有几个月了。我的同事们在很短的时间内就习惯了git和这个工作流程 - 一个时不时的问题,但它变得越来越少。我谦虚地感到惊讶,这种情况有多好。