79

我最近真的厌倦了 TFS。不过我听说隧道尽头有一盏灯。显然我可以使用 git-tf 或 git-tfs 并将我的代码视为由 git 管理,但能够向/从中央 TFS 服务器推/拉。

我的主要问题是我不确定我应该使用其中哪一个。有微软官方支持的 git-tf,还有存在时间更长的 git-tfs。这些之间有什么区别,我应该先尝试哪个?

4

3 回答 3

93

免责声明:我开始了这个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 等)支持的地方运行,该 SDK git-tf被明确创建以允许 Xcode 用户访问 TFS。

当然,在 Windows 上,您可以使用其中任何一个。我不一定会说一个比另一个更好。但我会说:

  1. 最大的抱怨git-tfs是它无法在 Mac OS 上运行。如果有办法使git-tfs跨平台,那么git-tf几乎肯定不会存在。

  2. git-tfs在某些情况下比git-tf。在最初的几次修订中,性能不是我们的首要任务,正确性才是。

  3. 因为git-tf具有广泛的平台支持矩阵,这意味着它的功能必然受到限制。例如,没有UI。 git-tfs另一方面,有一个checkintool命令将打开正常的 TFS Checkin 对话框。这对于可视化您的更改非常有帮助。(如果我记得,你可以从那里打开一个适当的视觉差异,等等)

  4. git-tf通过直接填充 git 存储库,将 TFS 对象直接下载到 git 对象数据库来工作。 git-tfs通过在隐藏文件夹中创建 TFS 工作文件夹映射,然后从中填充 git 存储库来工作。这里有一个磁盘损失,所以如果你有超大的存储库,你可能会感觉到这一点。

  5. git-tfs可以尝试将您的 TFS 分支映射到您的 git 分支。很多人会认为这是对git-tfs.最简单的工作流程。但是您的里程可能会有所不同。

  6. git-tfs由社区积极开发。 git-tf没有被社区收养。

我不想让它听起来像我在说git-tf不好。它不是。我觉得其实挺好的。但这可能不是您的最佳选择。


更新:git-tf已达到生命周期结束。Microsoft 不再维护或支持它。git-tfs如果您想要双向 TFS <-> git 解决方案,我们建议您使用。

于 2012-10-12T21:24:11.967 回答
32

Disclaimer: I am a developper on the git-tfs project

Edit: activity around git-tfs is reduced.

There is a support of TFS branching in git-tfs (fetching existing branches, creating branches, merge branches more easily than with TFS,... using branch command). It works most of the time but not with complex TFVC branches workflow...

See:

git-tfs is also perhaps the only tool that permit you to migrate from TFS(VC) to TFS(Git), managing workitems if needed, or plain git repository.

And some other good features...

(And it is more active and more supported)

于 2012-12-05T13:12:46.477 回答
6

对于任何找到此线程的人:

Git-TF在 2013 年后未更新后已正式停产,现在明确建议Git-TFS作为替代方案。

Git-TF 生命周期结束

Git-TF 已经到了生命的尽头。它将没有进一步的更新,并且不再受 Microsoft 支持。

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

于 2015-09-21T17:13:11.797 回答