简体   繁体   English

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

[英]What's the difference between git-tf and git-tfs?

I've recently been getting really fed up with TFS.我最近真的厌倦了 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.显然,我可以使用 git-tf 或 git-tfs 并将我的代码视为由 git 管理,但能够向/从中央 TFS 服务器推送/拉取。

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.有微软官方支持的 git-tf,还有已经存在很久的 git-tfs。 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.免责声明:我开始了git-tf项目,尽管在没有我频繁贡献的情况下,该项目现在已经掌握在非常有能力的人手中,但您绝对应该认为我对此的看法有很大的偏见。 (And, assuming you're on Windows, perhaps unexpected.) (而且,假设您使用的是 Windows,这可能出乎意料。)

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. git-tfs是为 Windows 用户构建的,是在 .NET TFS SDK 之上编写的。 The TFS SDK will not run under Mono, so this makes git-tfs unsuitable for cross-platform use. TFS SDK不会在 Mono 下运行,因此这使得git-tfs不适合跨平台使用。

  • git-tf was built for cross-platform users and written on top of the Java TFS SDK. git-tf是为跨平台用户构建的,并基于 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.因此,它将在 Java TFS SDK(Windows、Mac、Linux、AIX、HP-UX、Solaris 等)支持的任何地方运行, git-tf是明确创建的,以允许 Xcode 用户访问 TFS。

On Windows, of course, you can use either.当然,在 Windows 上,您可以使用任何一种。 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.git-tfs最大抱怨是它不能在 Mac OS 上运行。 If there was a way to make git-tfs cross-platform, then git-tf almost certainly wouldn't exist.如果有一种方法可以使git-tfs跨平台,那么git-tf几乎肯定不会存在。

  2. git-tfs is faster in some cases than git-tf . git-tfs在某些情况下比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.因为git-tf具有广泛的平台支持矩阵,这意味着它的功能必然受到限制。 For example, there is no UI.例如,没有用户界面。 git-tfs , on the other hand, has a checkintool command that will open the normal TFS Checkin dialog.另一方面, git-tfs有一个checkintool命令,可以打开正常的 TFS Checkin 对话框。 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-tf工作原理是直接填充 git 存储库,将 TFS 对象直接下载到 git 对象数据库中。 git-tfs works by creating a TFS working folder mapping in a hidden folder, then populating the git repository from that. git-tfs工作原理是在隐藏文件夹中创建 TFS 工作文件夹映射,然后从中填充 git 存储库。 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. git-tfs可以尝试将您的 TFS 分支映射到您的 git 分支。 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.很多人会认为这对git-tfs有利,但我不这么认为:git 的分支模型(在存储库级别)和 TFS 的分支模型(表示为存储库中的文件夹)完全不同以至于会导致问题除了最简单的工作流程之外的任何事情。 But your mileage may vary.但是您的里程可能会有所不同。

  6. git-tfs is actively developed by a community. git-tfs由社区积极开发。 git-tf has not had the community adoption. git-tf还没有被社区采用。

I don't want to make it sound like I'm saying git-tf is bad.我不想让它听起来像是在说git-tf不好。 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 .更新: git-tf已结束生命周期 It is no longer maintained or supported by Microsoft. Microsoft 不再维护或支持它。 We recommend git-tfs if you want a bidirectional TFS <-> git solution.如果您想要双向 TFS <-> git 解决方案,我们推荐git-tfs

Disclaimer: I am a developper on the git-tfs project免责声明:我是 git-tfs 项目的开发人员

Edit: activity around git-tfs is reduced .编辑:围绕 git-tfs 的活动减少了

There is a support of TFS branching in git-tfs (fetching existing branches, creating branches, merge branches more easily than with TFS,... using branch command).在 git-tfs 中支持 TFS 分支(获取现有分支、创建分支、合并分支比使用 TFS 更容易,......使用branch命令)。 It works most of the time but not with complex TFVC branches workflow...它大部分时间都有效,但不适用于复杂的 TFVC 分支工作流程......

See:看:

git-tfs is also perhaps the only tool that permit you to migrate from TFS(VC) to TFS(Git), managing workitems if needed, or plain git repository. git-tfs 也可能是唯一允许您从 TFS(VC) 迁移到 TFS(Git)、在需要时管理工作项或普通 git 存储库的工具。

And some other good features...还有其他一些不错的功能......

(And it is more active and more supported ) (而且它更活跃,更受支持

To anyone finding this thread:对于任何发现此线程的人:

Git-TF has been officially discontinued after not having been updated after 2013 and now explicitly suggests Git-TFS as an alternative. Git-TF在 2013 年之后没有更新后已正式停产,现在明确建议将Git-TFS作为替代方案。

Git-TF End-of-Life Git-TF 生命周期结束

Git-TF has reached its end-of-life. Git-TF 已达到其生命周期的终点。 It will have no further updates and is no longer be supported by Microsoft.它将没有进一步的更新,并且不再受 Microsoft 支持。

Microsoft Visual Studio Team Services now provides a simple import tool to import a Team Foundation Version Control repository into a Git repository. Microsoft Visual Studio Team Services 现在提供了一个简单的导入工具,用于将 Team Foundation 版本控制存储库导入 Git 存储库。 We recommend that you use this to convert TFVC repositories to Git.我们建议您使用它来将 TFVC 存储库转换为 Git。

If you require more advanced conversion needs, or you want to bridge a TFVC repository and work with a local Git repository, we recommend the git-tfs project .如果您需要更高级的转换需求,或者您想要桥接 TFVC 存储库并使用本地 Git 存储库,我们推荐 git-tfs 项目

Git-TF should not be used for new projects, but it will remain on the Codeplex archive for legacy users. Git-TF 不应用于新项目,但它会保留在 Codeplex 存档中供旧用户使用。

(Section added to the project's codeplex page in April 2017 by Edward Thomson, its initiator and author of the accepted answer) (该部分于 2017 年 4 月由 Edward Thomson(其发起者和已接受答案的作者)添加到项目的codeplex 页面中)

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM