git-tf和git-tfs有什么区别? [英] What's the difference between git-tf and git-tfs?

查看:259
本文介绍了git-tf和git-tfs有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近变得非常厌恶TFS。我听说隧道尽头有灯光。显然,我可以使用git-tf或git-tfs,并将我的代码视为由git管理,但能够从/向中央TFS服务器推/拉。



我的主要问题是我不确定我应该使用哪一个。 git-tf由微软官方支持,并且git-tfs已经存在了很长时间。这些和我应该先试用哪些不同?

www.edwardthomson.com/blog/team-foundation-server-and-xcode-projects-with-git-tfrel =nofollow noreferrer>启动 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 在某些情况下, C $ C> GIT-TF 。在前几个版本中,性能并非是我们的首要任务,正确性是。 因为 git-tf / code>有一个广泛的平台支持矩阵,这意味着它的功能必然受到限制。例如,没有 UI。另一方面, git-tfs 有一个 checkintool 命令,它将打开正常的TFS签入对话框。这对于可视化您的更改非常有用。 (如果我记得,你可以从那里打开一个适当的视觉差异等)。 $ c>直接填充git仓库,直接将TFS对象下载到git对象数据库中。 git-tfs 通过在隐藏文件夹中创建TFS工作文件夹映射,然后从中填充git存储库。这里有一个磁盘惩罚,所以如果你有超级仓库,你可能会感觉到这一点。 c>可以尝试将你的TFS分支映射到你的git分支。很多人都认为这是对 git-tfs 的肯定,尽管我没有:git的分支模型(在存储库级别)和TFS的分支模型(表示为存储库中的文件夹)是完全不同的,除了最简单的工作流之外,其他任何问题都会导致问题。但是你的里程可能会有所不同。 git-tfs git-tf 还没有被社区采纳。

我不想让它听起来像我说的 git-tf 是不好的。不是。我认为这其实很不错。但它可能不是你最好的选择。




更新: git-tf 已达到使用期限。它不再由Microsoft维护或支持。如果你想要一个双向TFS的git解决方案,我们推荐 git-tfs


I've recently been getting really fed up with TFS. I've heard that there is a light at the end of the tunnel though. Apparently I can use either git-tf or git-tfs and treat my code as if it was managed by git, but be able to push/pull to/from a central TFS server.

My main question is I'm not sure which one of these I should use. There is git-tf which is officially supported by Microsoft, and there is git-tfs which has been around a lot longer. What's the differences between these and which should I try out first?

解决方案

Disclaimer: I started the git-tf project and although the project is now in very capable hands without me as a frequent contributor, you should absolutely consider my opinions on this to be strongly biased. (And, assuming you're on Windows, perhaps unexpected.)

There are two fundamental differences between the two tools:

  • git-tfs was built for Windows users and written on top of the .NET TFS SDK. The TFS SDK will not run under Mono, so this makes git-tfs unsuitable for cross-platform use.

  • git-tf was built for cross-platform users and written on top of the Java TFS SDK. Thus, it will run anywhere that's supported by the Java TFS SDK (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc...) git-tf was explicitly created to allow Xcode users to access TFS.

On Windows, of course, you can use either. I'm not going to necessarily say one is better than the other. But I will say:

  1. My biggest complaint about git-tfs is that it won't work on Mac OS. If there was a way to make git-tfs cross-platform, then git-tf almost certainly wouldn't exist.

  2. git-tfs is faster in some cases than git-tf. Performance was not our priority in the first few revisions, correctness was.

  3. Because git-tf has a wide platform support matrix, this means that its functionality is necessarily constrained. For example, there is no UI. git-tfs, on the other hand, has a checkintool command that will open the normal TFS Checkin dialog. This can be exceptionally helpful in visualizing your changes. (If I recall, you can open up a proper visual diff from there, etc.)

  4. git-tf works by populating the git repository directly, downloading TFS objects directly into the git object database. git-tfs works by creating a TFS working folder mapping in a hidden folder, then populating the git repository from that. There's a disk penalty here, so if you have superginormous repositories, you might feel this.

  5. git-tfs can try to map your TFS branches to your git branches. A lot of people will see this as a positive for git-tfs, though I don't: git's branching model (at the repository level) and TFS's branching model (represented as folders in the repository) are so radically different as to cause problems in anything but the most simplistic workflows. But your mileage may vary.

  6. git-tfs is actively developed by a community. git-tf has not had the community adoption.

I don't want to make it sound like I'm saying git-tf is bad. It's not. I think it's actually pretty good. But it may not be your best choice.


Update: git-tf has reached end-of-life. It is no longer maintained or supported by Microsoft. We recommend git-tfs if you want a bidirectional TFS <-> git solution.

这篇关于git-tf和git-tfs有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆