在JavaGit,JGit和EGit之间进行选择的混乱

2022-08-31 12:02:05

我正在制作一个使用Git的Java应用程序。我发现有一种叫做JavaGitEGitJGit的东西。

我知道JavaGit和EGit / JGit是不同的。我不明白的是EGit和JGit之间的区别。两者都托管在Eclipse项目上,但一个似乎与Eclipse相关,另一个则不然。

我不使用Eclipse,我也不打算使用,所以我真的不太关心“Eclipse集成”。

JGit是否以某种方式连接到Eclipse?(它托管在 www.eclipse.org 上,JGit的文档里面也有很多“eclipse”关键字)

在这三个中,我需要什么来连接我的Java程序(不是用Eclipse编写的)来使用Git存储库?

我更喜欢一个独立的Git库(即,不依赖于本地Git安装)

编辑:还有一个问题:

编辑:我找到了答案 - 它确实如此(还没有尝试过)。它位于名为transportBundleWriter


答案 1

您可以将 JGit 用作独立库,但是,如 JGit 主页中所述:

JGit 可以在以下位置找到:
* EGit,Eclipse Team Provider for Git

从这个意义上说,JGit与Eclipse有关,因为EGit使用JGit功能来开发Eclipse Git插件。
考虑到所有Eclipse项目现在都在Git存储库中进行了版本控制(而不是以前的CVS存储库),我会考虑将JGit用于您的Java项目,因为看起来:

  • JavaGit 有很长一段时间没有更新了(2008 年)
  • Eclipse 致力于通过 EGit 为 Git 提供良好的支持,这应该通过扩展来确保 JGit(由 EGit 使用)的开发。

Thorbjørn Ravn Andersen评论道:

即使你说Egit使用JGit,但在上面并不清楚EGit是Git的Eclipse插件,以提供git支持,就像EClipse中已经支持CVS一样。

Eclipse项目从CVS到Git的迁移正在进行中,并已在此处报告(由Chris Aniszczyk报告)。

我已经在几个项目的开发列表中监视了有关项目代码从 CVS 迁移到 Git 的对话。
大多数开发人员似乎都理解迁移的价值主张,尽管他们担心迁移会带来很多新的学习,因为他们知道如何在新环境中提高工作效率。

不可避免地,关于 EGit 项目正在开发的 Git 团队提供商的讨论成为对话的突出部分。“EGit准备好进入黄金时段了吗?”这通常是一个反弹的问题

官方的 bug 说明了 Eclipse 承诺为 Git 存储库上的所有 Eclipse 项目提供“足够的工具支持”,这是293192。

为了弃用旧的VCS以支持git(错误270854),应该提供足够的工具。创建此错误是为了跟踪它。
[...]我打开/链接了相关的EGit错误,以便更好地了解/跟踪缺少的内容。

因此,Egit 是该错误中引用的唯一一个为所有 Eclipse 项目选择的新 (D)VCS 提供足够工具支持的项目。

(bug 270854是关于弃用旧的VCS工具,它基本上包括CVS。


Just in (2001 年 3 月 17 日): The State of Git at Eclipse – Early 2011Chris Aniszczyk):

我很高兴,自去年以来,根据Eclipse Marketplace的统计数据和项目收到的社区贡献,事情已经走了很长一段路。

EGit installation rate

那么接下来呢?在工具方面,我们越来越接近我们的1.0版本(计划在Indigo版本中发布)。
如今,Eclipse的git工具要好得多,如果您需要帮助或有疑问,请从最优秀的EGit用户指南开始。

如果您是一个项目,请考虑开始将项目存储库移动到 Git 的过程。Git上已经有很多 eclipse.org 项目
很高兴看到所有 eclipse.org 项目都计划在Indigo版本之前迁移到Git。eclipse.org


答案 2

作为JGit和EGit的作者之一,很抱歉造成混淆。

JGit是一个EDL(新式BSD)许可的轻量级纯Java库,实现了Git版本控制系统。它可以以独立的方式使用,并嵌入到Gerrit,Eclipse,Netbeans和IntelliJ等应用程序中。EGit 嵌入 JGit 以使用它来处理 Git 存储库,并从 Eclipse 中公开 Git 构造。目前,JGit不支持git-bundle命令,但欢迎您贡献支持,这应该不是那么难,请参阅我们的贡献者指南。


推荐