Git 和 Team Foundation Server

Posted

技术标签:

【中文标题】Git 和 Team Foundation Server【英文标题】:Git and Team Foundation Server 【发布时间】:2010-10-11 11:37:37 【问题描述】:

更新:我不再使用 TFS。但是从 cmets 中我可以看出 git-tfs 显然是当今要走的路。

有人使用 Git 作为 Team Foundation Server 的离线解决方案吗?

对于 Subversion,您可以使用 git-svn 来保留一个带有 svn 后端的私有存储库。

我尝试使用SvnBridge 和 git-svn 来处理 TFS。起初它看起来很有希望,但 Visual Studio 将解决方案识别为受 TFS 版本控制并在提交期间进行干扰。

还有其他方法可以将这两者结合起来吗?

【问题讨论】:

请更新你的答案,git-tfs 真的很棒,而且它不会成为 rube goldbergian,我认为它值得称赞。 最近***.com/questions/16146791/… 【参考方案1】:

我已经开始研究一个叫做 git-tfs 的工具,在某些方面类似于 git-svn。

https://github.com/git-tfs/git-tfs

【讨论】:

我对您的解决方案非常感兴趣。已经可以用了吗? 它对于从 TFS 获取数据到 git 非常有用。如果您可以使用搁置集推回 TFS,那么它可用于整个往返行程。 货架集不再需要。工作一种享受。 这个可以和乌龟一起用吗? 我很容易将它与 GitExtension 的脚本功能一起使用。没问题。还有另外 2 位没有 git 知识的同事......【参考方案2】:

Microsoft 的新产品:Git-tf

公告:Announcing Git Integration with TFS

下载:here

来源(CodePlex):here

【讨论】:

Git tf 支持 tfs 2008, 2010 和 2012 根据这篇文章visualstudiomagazine.com/articles/2012/08/13/… @Konstantin 谢谢,已编辑答案。我想知道这是否是新的,或者我只是完全想念读过的东西。不管怎样,我现在该换了:) 对于任何困惑的人来说,git tf 与 git tfs 不同,原因是:“我们的一大需求是创建一个在 Windows、Linux 或MacOS。对于现有的 Git-tfs 项目来说,这确实不存在,我们一起同意单独的跨平台解决方案是有意义的。因此 Git-tf 诞生了。原始公告可以在这里找到:blogs.msdn.com/b/bharry/archive/2012/08/13/… 是否有人可以将 git-tf 用于 TFS 2008?上面的链接仅有助于 TFS 2010 或更高版本【参考方案3】:

我确信这是可能的,但它的构造会非常古怪,而且很可能会导致更多的痛苦而不是快乐。我建议选择一个源代码控制系统并使用它。

如果您需要真正的离线支持,那么 git 很棒,但 Windows 支持仍然有点不稳定。

【讨论】:

如果你在 Windows 上从命令行使用 Git,它已经足够成熟了。 Git 的 UI 应用程序(Git Extensions、Tortoise Git..)可能会更好,但它们仍然可以。 现在已经是 2011 年了,支持好多了。谢天谢地! “我建议选择一个源代码控制系统并使用它。”这对无权做出决定的人没有帮助。 我的意思是,一旦决定使用源代码控制系统,就不要尝试使用其他东西并与之集成。 Git-Tfs 现在存在,所以这是解决这个问题的真正方法......【参考方案4】:

我们只是决定在工作中这样做。这是一篇关于我们如何做到这一点的博文。

http://blog.lozanotek.com/archive/2009/10/20/git-svn_SvnBridge_and_TFS_Source_Control.aspx

刚刚在 Github 上也找到了这个项目。这可能有效,但我还没有尝试过。

http://github.com/spraints/git-tfs

【讨论】:

【参考方案5】:

我可以告诉你这是可能的......

您还可以在这里找到有关具有相同经历的人的一些小细节:http://blog.zobie.com/2009/04/using-git-to-avoid-problems-with-tfs/

【讨论】:

【参考方案6】:

与您的问题有点偏离主题,但我编写了一个 Powershell 脚本,可将 TFS 存储库转换为 Git 存储库。也可能有用。

见my Github repo for the script

【讨论】:

【参考方案7】:

TFS 现在支持 git: tfs news git support

【讨论】:

仅来自 tfs.microsoft.com 的托管 TFS,但可能是用于本地安装的 TFS 的下一个主要版本。【参考方案8】:

Brian Harry 详细介绍了 new integration of Git repositories 到 Team Foundation Service 和 Team Foundation Server 2013 的一些详细信息。他提出了很多有趣的观点,这些观点对企业尤其重要,通常对于关心可靠托管 Git 存储库的团队而言:

易于安装——我们现在已经让安装 Git 成为一个无缝的部分 安装 TFS。没有什么可追踪和下载的。 无需单独安装和配置。您只需安装 TFS 2013 并自动获得 Git 支持。

支持和服务 – 因为我们正在运送它,所以我们支持它。 这意味着如果您有任何问题,您可以联系我们的支持和 得到帮助。您将收到安全更新、热修复、定期 更新和更多与您习惯获取它们的方式相同。好吧 努力确保您的 TFS 服务器健康且处于最新状态 无论您使用的是哪些功能。

高可用性 – 从一开始,我们就致力于提供 TFS 支持 高可用性。我们的 Git 支持也不例外——我们支持所有 与 TFS 一样——负载平衡和 集群以确保您的服务器将继续运行,尽管 硬件和软件故障,如果需要,可以进行异地复制 确保即使面对 区域性中断,在线备份和恢复作为集成的一部分 TFS 让您现有的企业级备份和恢复策略 (完整、增量和事务日志)将继续工作(给 你是优秀的 RTO 和 RPO)。

Scale – 与 TFS 一样,您可以无缝扩展 TFS 安装 随着您的需求增长。这包括扩展应用程序 层和存储层,因为您需要添加额外的容量。

易于管理 – 我们的 Git 实现完全集成到 TFS 以便您的所有管理策略可以继续保持不变 – 服务帐户管理、硬件迁移、软件修补、 备份和恢复、监控、权限管理等。

集成身份验证 – 我们的 Git 支持与 Windows 完全集成 Active Directory 身份验证让您的所有访问控制, 审计等可以针对一致且可管理的 基础设施。作为其中的一部分,所有更改都将根据 授权身份,确保您知道谁进行了每次更改。

增强的权限 – 我们已经构建(并且正在构建)一堆 额外的存储库和权限管理功能, 允许管理员“控制混乱”。第一组包括 管理存储库的能力(创建、删除、重命名等)和 控制读取、写入和管理的存储库级别权限 权限。我们还包括第四个权限,用于处理密钥 许多客户在使用 Git 时遇到的问题——“强制推送”,即 有效地使用户能够“改变历史”。虽然我们启用了这个 能力,我们还允许管理员使用 允许。我们现在也在研究额外的权限——比如 允许管理员控制的分支级别权限 谁可以创建、删除和使用各个分支。这样, 开发人员可以在本地选择任何方式使用分支,但是,当 他们将推回主仓库,他们受到限制 根据管理员配置的策略。

ALM 集成 – 当然,我们正在将 Git 完全集成到 TFS ALM 工作流——工作项跟踪、构建自动化、 报告、代码审查等。并非所有的整合都是 尚未完成,但我们将在 2013 年更新中充实它 并且,当我们完成后,我们应该对 ALM 集成进行完全平等的评价 Team Foundation 版本控制和 Git 版本之间的功能 控制。

本地化 – 与我们的其他产品一样,我们的 Git 功能将 本地化为与 VS 其余部分相同的语言,使其更加 非英语世界的部分地区可以接近。

来源:Enterprise Grade Git Repos

【讨论】:

【参考方案9】:

我同意 Matt Burke 的说法,我认为http://git-tfs.com 是你的选择。但也有一些缺点:

你必须提交 2 次,一次在 VS 中,一次在 Git 控制台中

如果要将变更集链接到某个项目,则必须了解有关 git-tfs 语句(rcheckin,...)的更多信息

【讨论】:

第二点(至少现在是 2020 年)很容易实现:只需在提交消息中写“#1234”(如果 1234 是工作项编号)。

以上是关于Git 和 Team Foundation Server的主要内容,如果未能解决你的问题,请参考以下文章

在Sublime中集成Team Foundation Server (TFS),实现版本管理

Team Foundation Server 2012 中的补丁分支

Team Foundation Server (TFS)集成Flyway,实现数据库的版本管理

Team Foundation 无法从 Team Foundation Server 检索团队项目列表

Nuget 和 Team Foundation Server 脱机错误

使用 Team Foundation Server 中的 Team Foundation 版本控制将分支的最新版本合并到其根目录