我最近厌倦了TFS。我听说隧道尽头有一盏灯。显然我可以使用git-tf或git-tfs来处理我的代码,好像它是由git管理的,但能够推送/拉出中央TFS服务器。
我的主要问题是我不确定应该使用哪一项。微软正式支持git-tf,git-tfs已经存在了很长时间。这些之间有什么区别,我应该先尝试哪些?
答案 0 :(得分:85)
免责声明:我started the git-tf
project虽然项目现在处于非常有能力的手中而没有我作为经常的贡献者,但你绝对应该认为我对此的看法是强烈有偏见。 (并且,假设您使用的是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。 / p>
在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
has reached end-of-life。它不再由Microsoft维护或支持。如果您想要双向TFS< - >,我们建议git-tfs
git解决方案。
答案 1 :(得分:28)
免责声明:我是git-tfs项目的开发人员
编辑:git-tf不再维护......
编辑:git-tfs isn't actively maintained。
现在,git-tfs对TFS分支有很好的支持(获取现有分支,创建分支,比使用TFS更容易合并分支,...使用branch
命令)。
请参阅:
git-tfs也许是唯一允许您从TFS(VC)迁移到TFS(Git),管理工作项(如果需要)或普通git存储库的工具。
还有其他一些好的功能......
答案 2 :(得分: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存档中。
(2017年4月,项目added的codeplex page部分由Edward Thomson,其发起人和接受答案的作者)
Git-TFS
似乎得到积极维护:
https://github.com/git-tfs/git-tfs/commits/master