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

我最近真的厌倦了TFS。 我听说隧道尽头有灯光。 显然,我可以使用git-tf或者git-tfs,把我的代码看作是由gitpipe理的,但是能够从中央TFS服务器上推/拉。

我的主要问题是我不确定我应该使用哪一个。 git-tf是由微软正式支持的,而git-tfs已经存在了很久。 这些和我应该先试一试的区别是什么?

免责声明:我开始了git-tf项目 ,虽然现在项目已经非常有能力,没有我作为一个频繁的贡献者,但你应该绝对考虑我对此的看法是强烈的偏见。 (而且,假设你在Windows上,也许是意外的。)

这两种工具有两个基本的区别:

  • git-tfs是为Windows用户构build的,并且是在.NET TFS SDK之上编写的。 TFS SDK 不能在Mono下运行,所以这使得git-tfs不适合跨平台使用。

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

在Windows上,当然也可以使用。 我不一定会说一个比另一个好。 但是我会说:

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

  2. 在某些情况下, git-tfsgit-tf 更快 。 在前几次修改中,性能并不是我们的首要任务,正确性是。

  3. 因为git-tf有一个广泛的平台支持matrix,这意味着它的function必然受到限制。 例如, 没有用户界面。 另一方面, git-tfs有一个checkintool命令,将打开正常的TFS checkintool入对话框。 这对于可视化您的更改非常有帮助。 (如果我记得,你可以打开一个适当的视觉比较,等等)

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

  5. git-tfs可以尝试将你的TFS分支映射到你的git分支。 很多人会认为这对于git-tfs是有利的,尽pipe我不这么做:git的分支模型(在存储库级别)和TFS的分支模型(在存储库中表示为文件夹)是非常不同的,会导致问题除了最简单的工作stream程之外。 但你的里程可能会有所不同

  6. git-tfs是由社区积极开发的。 git-tf没有被社区采纳。

我不想让这听起来像我说git-tf是坏的。 不是。 我觉得这其实挺好的。 但这可能不是你最好的select。


更新: git-tf已达到使用寿命 。 它不再由Microsoft维护或支持。 如果您需要双向TFS < – > git解决scheme,我们推荐使用git-tfs

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

编辑:git-tf不再维护…

现在,在git-tfs中支持TFS分支(获取现有分支,创build分支,比使用TFS更容易合并分支,…使用branch命令)。

看到:

  • 用git-tfspipe理分支
  • git-tfs分支命令文档
  • 关于这个问题的另一个答案在stackoverflow

git-tfs也许是唯一允许你从TFS(VC)迁移到TFS(Git)的工具,pipe理工作项目,如果需要的话,还是纯粹的git仓库。

还有其他一些好的function

(这是更积极和更多的支持 )

任何人find这个线程:

Git-TF在2013年之后没有更新之后已经正式停用,现在明确提出Git-TFS作为替代scheme。

Git-TF报废

Git-TF已经达到其使用寿命。 它将没有进一步的更新,不再受到Microsoft的支持。

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

如果您需要更高级的转换需求,或者希望桥接TFVC存储库并使用本地Git存储库,那么我们推荐使用git-tfs项目

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

(部分由Edward Thomson于2017年4月添加到项目的codeplex页面 ,Edward Thomson是其接受答案的发起人和作者)

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

Interesting Posts