【问题标题】:How do I handle a complex set of related projects using TFS 2013 GIT repository and branching?如何使用 TFS 2013 GIT 存储库和分支处理一组复杂的相关项目?
【发布时间】:2013-10-31 19:14:24
【问题描述】:

我有一个由大约 20 名开发人员组成的团队,他们一起致力于一个项目。这个项目有几个组件,涉及硬件、固件、软件,甚至网络功能。我们想使用 TFS 2013 跟踪整个项目的进度。但是,我们无法弄清楚如何使用 GIT 存储库管理事物的源代码控制方面。硬件团队将需要能够锁定他们的代码来处理它,因为他们正在处理用于布局电路和所有其他硬件的二进制文件。我们目前正在考虑将事物的硬件部分作为自己的项目,将事物的固件/软件部分作为自己的项目,使用 GIT 存储库。

我们担心的是,TFS 2013 似乎要求任何工作项仅与来自同一项目的签入相关联。所以为了克服这个问题,我们将在同一个项目中拥有所有固件和软件,但分为几个不同的区域。我们担心如果它们都在同一个项目中,并且使用同一个 GIT 源代码存储库,当不同的软件区域在不同的时间发布,并且每个区域有几个分支时,我们可能会遇到问题。结合起来,我们最终可能会得到大量的分支。管理这些有问题吗?

是否可以将 TFS 2013 配置为允许工作项跨项目?是否可以将 GIT 设置为对不同的代码区域使用不同的存储库,即使它们都在同一个 TFS 项目中?

对于如何管理这个问题有什么建议吗,或者这在 TFS 2013 中是否无法管理?

感谢任何帮助、cmets 或建议。


稍后添加:

在阅读了这篇文章的答案并与我的一些同事交谈后,似乎我们在上述情况下遵循的最佳途径是拥有 2 个项目。 1个用于硬件,另一个用于软件/固件。硬件将拥有自己的非 GIT 存储库,软件/固件将共享一个 GIT 存储库。我们将在 GIT 存储库中定义主分支。每个软件程序一个。每个程序将被分配一个不同的区域。这样,对于软件和固件,我们可以保持程序隔离,并且在 TFS 中的同一个项目中都可以看到它们,以便进行项目管理和协作。它还将允许我们将所有签入与 TFS 项目相关联,并允许 QA 将错误与任务和区域相关联,所有这些都在一个项目中。硬件将独立于项目的软件/固件部分进行处理。

【问题讨论】:

  • 我建议 TFS 和 VS 2013 允许我们在 Visual Studio 用户语音上specify the default remote git repo of teams/areas of a team project。如果您喜欢这个想法,请投票!我的建议是为了让 TFS 和 VS 更好地支持一个团队项目的这一方面来统治他们所有的场景......而不是使用 git 分支等变通方法......

标签: git version-control project-management alm


【解决方案1】:

您可以使用 Teams 和多个存储库来完成此任务,所有这些都来自同一个团队项目

第 1 步:将不同类型的工作分成团队。这是一篇关于在同一个团队项目中添加更多团队的好帖子:http://msdn.microsoft.com/en-us/library/vstudio/hh500414.aspx

第 2 步:为您的硬件代码创建第二个存储库。这是一个关于如何做到这一点的链接(大约在页面的中间):http://msdn.microsoft.com/en-us/library/hh850436.aspx

另一种方法是仅使用区域路径来指示您的团队正在处理的代码部分,而不是单独的团队(实际上只是区域路径+权限)。这是使用区域路径的一个很好的链接:http://msdn.microsoft.com/en-us/library/vstudio/ms181692.aspx。但是,您仍然会使用单独的存储库。

我绝对不会创建多个团队项目。这条路只会导致未来的头痛。改为使用区域路径和/或团队来组织。

【讨论】:

  • 我正在与工作人员交谈,他们担心如果签入都发生在不同的存储库上,我们将无法将工作项与签入相关联。他们似乎认为此功能尚不可用,或者尚不应该与 Visual Studio 2013 一起使用?你知道这是否正确吗?
  • 我刚刚用 VS 2013 RTM 仔细检查了一个演示框,它工作正常。关键是您必须手动克隆第二个 repo。然后,您需要手动将工作项 ID 添加到提交消息中,例如 #1234。这将创建关联。我知道有点笨拙,但体验应该很快就会好起来。
  • 是否可以只添加几个主分支(每个程序一个)然后它们都将在同一个存储库中,并且签入可以更容易地与工作项关联?
猜你喜欢
  • 2011-07-05
  • 2014-07-30
  • 1970-01-01
  • 2014-11-11
  • 2015-12-09
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 2013-02-21
相关资源
最近更新 更多