最近,我真的对TFS感到厌烦。我听说隧道尽头有灯。显然,我可以使用git-tf或git-tfs,将我的代码视为由git管理,但能够将其推入/拉出中央TFS服务器。
我的主要问题是我不确定应该使用哪一种。微软正式支持git-tf,而git-tfs已经存在了很多年。这些之间有什么区别,我应该首先尝试哪个?
最近,我真的对TFS感到厌烦。我听说隧道尽头有灯。显然,我可以使用git-tf或git-tfs,将我的代码视为由git管理,但能够将其推入/拉出中央TFS服务器。
我的主要问题是我不确定应该使用哪一种。微软正式支持git-tf,而git-tfs已经存在了很多年。这些之间有什么区别,我应该首先尝试哪个?
Answers:
免责声明:我开始了这个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上,您可以使用任何一个。我并不一定要说一个比另一个更好。但是我会说:
我最大的抱怨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-tfs
由社区积极开发。 git-tf
还没有被社区采用。
我不想听起来像是我说git-tf
的不好。不是。我认为这真的很好。但这可能不是您的最佳选择。
更新:git-tf
已达到使用寿命。Microsoft不再维护或支持它。我们建议git-tfs
您是否需要双向TFS <-> git解决方案。
免责声明:我是git-tfs项目的开发人员
编辑:git-tf不再维护...
git-tfs中支持TFS分支(获取现有分支,创建分支,比使用TFS更容易地合并分支,...使用branch
命令)。它大部分时间都可以工作,但不适用于复杂的TFVC分支工作流程...
看到:
git-tfs也许也是允许您从TFS(VC)迁移到TFS(Git),管理工作项(如果需要)或纯git仓库的唯一工具。
还有其他一些好的功能...
对于任何发现此线程的人:
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