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上,当然也可以使用。 我不一定会说一个比另一个好。 但是我会说:
-
我对
git-tfs
最大的抱怨是,它不能在Mac OS上工作。 如果有办法让git-tfs
跨平台,那么git-tf
几乎肯定不会存在。 -
在某些情况下,
git-tfs
比git-tf
更快 。 在前几次修改中,性能并不是我们的首要任务,正确性是。 -
因为
git-tf
有一个广泛的平台支持matrix,这意味着它的function必然受到限制。 例如, 没有用户界面。 另一方面,git-tfs
有一个checkintool
命令,将打开正常的TFScheckintool
入对话框。 这对于可视化您的更改非常有帮助。 (如果我记得,你可以打开一个适当的视觉比较,等等) -
git-tf
通过直接填充git仓库来工作,直接将TFS对象下载到git对象数据库中。git-tfs
通过在隐藏文件夹中创buildTFS工作文件夹映射工作,然后从中填充git存储库。 在这里有一个磁盘惩罚,所以如果你有超级仓库,你可能会感觉到这一点。 -
git-tfs
可以尝试将你的TFS分支映射到你的git分支。 很多人会认为这对于git-tfs
是有利的,尽pipe我不这么做:git的分支模型(在存储库级别)和TFS的分支模型(在存储库中表示为文件夹)是非常不同的,会导致问题除了最简单的工作stream程之外。 但你的里程可能会有所不同 -
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