我最近真的厌倦了 TFS。不过我听说隧道尽头有一盏灯。显然我可以使用 git-tf 或 git-tfs 并将我的代码视为由 git 管理,但能够向/从中央 TFS 服务器推/拉。
我的主要问题是我不确定我应该使用其中哪一个。有微软官方支持的 git-tf,还有存在时间更长的 git-tfs。这些之间有什么区别,我应该先尝试哪个?
免责声明:我开始了这个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 上,您可以使用其中任何一个。我不一定会说一个比另一个更好。但我会说:
我最大的抱怨git-tfs
是它无法在 Mac OS 上运行。如果有办法使git-tfs
跨平台,那么git-tf
几乎肯定不会存在。
git-tfs
在某些情况下比快git-tf
。在最初的几次修订中,性能不是我们的首要任务,正确性才是。
因为git-tf
具有广泛的平台支持矩阵,这意味着它的功能必然受到限制。例如,没有UI。 git-tfs
另一方面,有一个checkintool
命令将打开正常的 TFS Checkin 对话框。这对于可视化您的更改非常有帮助。(如果我记得,你可以从那里打开一个适当的视觉差异,等等)
git-tf
通过直接填充 git 存储库,将 TFS 对象直接下载到 git 对象数据库来工作。 git-tfs
通过在隐藏文件夹中创建 TFS 工作文件夹映射,然后从中填充 git 存储库来工作。这里有一个磁盘损失,所以如果你有超大的存储库,你可能会感觉到这一点。
git-tfs
可以尝试将您的 TFS 分支映射到您的 git 分支。很多人会认为这是对git-tfs
.最简单的工作流程。但是您的里程可能会有所不同。
git-tfs
由社区积极开发。 git-tf
没有被社区收养。
我不想让它听起来像我在说git-tf
不好。它不是。我觉得其实挺好的。但这可能不是您的最佳选择。
更新:git-tf
已达到生命周期结束。Microsoft 不再维护或支持它。git-tfs
如果您想要双向 TFS <-> git 解决方案,我们建议您使用。
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...
对于任何找到此线程的人:
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