git-tf和git-tfs有什么区别?

79

我最近对TFS感到非常不满。但是我听说这有救了。据说我可以使用git-tf或git-tfs,将我的代码视为由git管理,但仍能够推送/拉取到/从中央的TFS服务器。

我的主要问题是我不确定应该使用哪个工具。有微软官方支持的git-tf,也有存在很长时间的git-tfs。它们之间有什么区别,我应该先尝试哪一个?


2
我理解你的感受。你越早摆脱TFS越好。然后直接使用MSysGit的命令行。不要烦恼其他事情。在过去的5年里,这对我很有效。 - Adam Dymitruk
7
@AdamDymitruk,我与一个非常开放的团队合作,所以有一天这可能会发生,但目前来看,因为我们在TFS中有许多其他内容而不仅仅是源代码,所以这样做太昂贵了。 - Earlz
3个回答

95
免责声明: 我创建了git-tf项目,尽管该项目现在已经由其他人精通地接手,但你应该认为我的观点是非常有偏见的。(并且,假设您使用的是Windows,则可能意外。)
这两种工具之间有两个根本性差异:
  • git-tfs是为Windows用户构建的,并在.NET TFS SDK之上编写。由于TFS SDK不会在Mono下运行,因此这使得git-tfs不适合跨平台使用。

  • git-tf是为跨平台用户构建的,并在Java TFS SDK之上编写。因此,它将在任何受Java TFS SDK支持的地方运行(Windows、Mac、Linux、AIX、HP-UX、Solaris等...)git-tf是专门为允许Xcode用户访问TFS而创建的。

当然,在Windows上,你可以使用任何一种工具。我不会说哪种工具比另一种更好,但我会说:
  1. 我最大的抱怨是git-tfs不适用于Mac OS。如果有一种方法使git-tfs跨平台,那么git-tf几乎肯定不会存在。

  2. 在某些情况下,git-tfs比git-tf更。性能不是我们最初几个版本的重点,正确性才是。

因为git-tf有广泛的平台支持矩阵,这意味着它的功能必然受到限制。例如,它没有用户界面。另一方面,git-tfs具有checkintool命令,将打开正常的TFS提交对话框,这在可视化您的更改方面非常有帮助。(如果我回忆起来的话,你可以从那里打开一个适当的可视化差异等)。 git-tf通过直接填充git存储库,直接下载TFS对象到git对象数据库中来工作。git-tfs通过在隐藏文件夹中创建一个TFS工作文件夹映射,然后从那里填充git存储库。这里有一个磁盘惩罚,所以如果你有超级大的存储库,你可能会感到这个问题。 git-tfs可以尝试将TFS分支映射到git分支。很多人会把这看作是git-tfs的优点,但我不会: git的分支模型(在存储库层面上)和TFS的分支模型(表示为存储库中的文件夹)是如此根本不同,以至于在除了最简单的工作流之外的任何地方都会引起问题。但是你可能有不同的看法。 git-tfs由社区积极开发,而git-tf没有得到社区采纳和支持。
我不想让它听起来像我在说git-tf不好。它不是的。我认为它实际上相当不错。但它可能不是你最好的选择。
更新: git-tf已经达到了生命周期的终点。它不再由微软维护或支持。如果你想要一个双向TFS <-> git解决方案,我们建议使用git-tfs

2
那么基本上在非Windows系统上使用git-tf,在Windows系统上使用git-tfs? - Earlz
11
看起来我会选择使用git-tfs。无论什么情况下,我都不会在我的开发环境中安装Java。 - ATL_DEV
一年多过去了,这些内容还有多少是真实的? - João Portela
对于较大的代码库,git-tfs不会遇到git-tf出现的内存溢出异常。实际上,支持跨平台是git-tf的唯一优点。 - Andrew Clear
git-tfs对我们来说不起作用,但Git-TF却很好用。到目前为止,Git-TF真是个福音。 - undefined
显示剩余2条评论

31

免责声明:我是git-tfs项目的开发者

编辑:git-tfs周围的活动减少了

在git-tfs中支持TFS分支(使用branch命令获取现有分支,创建分支,比使用TFS更轻松地合并分支等)。它在大多数情况下都有效,但对于复杂的TFVC分支工作流则不适用...

参见:

git-tfs还可能是唯一允许您从TFS(VC)迁移到TFS(Git),如果需要,管理工作项或纯git存储库的工具。

还有一些其他很好的功能...

(它也更加活跃和更受支持


7

对于任何发现此线程的人:

Git-TF 已在2013年后没有更新并明确建议使用 Git-TFS 作为替代方案。

Git-TF终止

Git-TF已到达终止。它将不再有更新并且微软将不再支持它。

Microsoft Visual Studio Team Services现在提供了一个简单的导入工具,用于将Team Foundation版本控制存储库导入到Git存储库中。我们建议您使用它来将TFVC存储库转换为Git存储库。

如果您需要更高级的转换需求,或者想桥接TFVC存储库并使用本地Git存储库工作,我们建议使用git-tfs项目

Git-TF不应用于新项目,但对于旧用户,它将保留在Codeplex存档中。

(该项目的创始人和被接受答案的作者 Edward Thomson在2017年4月将链接添加到其 Codeplex页面 中)

Git-TFS 似乎在积极维护中: https://github.com/git-tfs/git-tfs/commits/master


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接