eclipse 在JavaGit、JGit和EGit之间进行选择时出现混淆

drkbr07n  于 2023-01-13  发布在  Eclipse
关注(0)|答案(6)|浏览(123)

我正在做一个使用Git的Java应用程序,我发现有一个叫做JavaGitEGitJGit的东西。
我知道JavaGit和EGit/JGit是不同的。我不明白的是EGit和JGit之间的区别。两者都托管在Eclipse项目上,但一个似乎与Eclipse相关,另一个则不相关。
我不使用Eclipse,也不打算使用,所以我真的不太关心“Eclipse集成”。
JGit是否以某种方式连接到Eclipse?(它托管在www.example.com上www.eclipse.org,JGit的documentation内部也有很多“eclipse”关键字)
在这三个代码中,我需要什么来连接Java程序(不是用Eclipse编写的)以使用Git存储库?
我更喜欢独立的Git库(即不依赖于本地Git安装)
编辑:还有一个问题:

编辑:我找到了答案--确实如此(还没有尝试过),它位于transport包中的一个名为BundleWriter的类中

cfh9epnr

cfh9epnr1#

您可以将JGit用作独立库,但是,如JGit Homepage中所述:
JGit可在以下位置找到:

  • EGit,Git的Eclipse团队提供程序
    从这个意义上讲,JGit连接到Eclipse,因为EGit使用JGit特性来开发Eclipse Git插件。
    考虑到所有Eclipse项目现在都在Git repos中进行版本控制(而不是以前的CVS repos),我会考虑将JGit用于您的Java项目,因为看起来:

  • JavaGit已经有一段时间没有更新了(2008)

  • Eclipse致力于通过EGit为Git提供良好的支持,这将通过扩展确保JGit(由EGit使用)的开发。

Thorbjørn Ravn Andersen评论:
尽管您说Egit使用JGit,但在上面的内容中并不十分清楚EGit是一个Eclipse插件,它以Eclipse中已经支持CVS的方式为git提供支持
Eclipse项目from CVS to Git is in progresshas been reported here的迁移(作者Chris Aniszczyk)。
我在几个项目的dev-list中监控了关于将项目代码从CVS迁移到Git的对话。
大多数开发人员似乎都理解迁移的价值主张,尽管他们担心迁移会带来很多新的学习,因为他们知道如何在新环境中提高生产力。
不可避免地,关于EGit项目正在开发的Git团队提供者的讨论成为了谈话的一个突出部分。“EGit准备好迎接黄金时段了吗?”经常是人们谈论的问题
官方的bug是bug 293192,它说明了Eclipse承诺为Git repo上的所有Eclipse项目提供“足够的工具支持”。
为了支持git(bug 270854)而弃用旧的VCS,应该有足够的工具可用。创建此bug就是为了跟踪这一点。
[...]我打开/链接了相关的EGit错误,以便更好地查看/跟踪缺失的内容。
因此Egit是该bug中引用的唯一一个项目,它为所有Eclipse项目选择的新(D)VCS提供了足够的工具支持。
bug 270854是关于弃用旧的VCS工具的,基本上包括CVS。)
刚刚(2001年3月17日):第一个e7f1x项(第一个e8f1x项):
我很高兴,从去年开始,基于Eclipse Marketplace的统计数据和项目收到的社区贡献,事情已经取得了长足的进步。

那么下一步是什么呢?在工具方面,我们离1.0版本越来越近了(计划在靛蓝版本中发布)。
Eclipse的git工具现在已经好多了,如果你需要帮助或者有问题,请从最优秀的**EGit User Guide开始。
如果您是一个eclipse.org项目,请考虑启动将项目存储库移动到Git.
There are a lot of eclipse.org projects already on Git**的流程。
如果能看到所有的eclipse.org项目都计划在靛蓝发布时迁移到Git,那就太好了。

8ehkhllq

8ehkhllq2#

作为JGit和EGit的作者之一,很抱歉造成混乱。
JGit是EDL(新式BSD)授权的轻量级纯Java库,实现了Git版本控制系统。它可以独立使用,也可以嵌入Gerrit、Eclipse、Netbeans和IntelliJ等应用程序中。EGit嵌入了JGit,以便使用它来处理Git存储库,并从Eclipse中公开Git构造。目前,JGit不支持git-bundle命令,但欢迎您提供支持,这应该不难,请参阅我们的贡献者指南。

yxyvkwin

yxyvkwin3#

顺便插一句,我刚才无意中发现了这个问题。
Eclipse基金会和Eclipse IDE之间有一个区别。基金会是一个伞式组织,而IDE是通过基金会开发的项目之一。因此,重要的是要知道,正如Apache从Web服务器开始,然后扩展为托管许多项目的基金会一样,Eclipse基金会现在也扩展到了IDE中的“根”之外。
因此,在本文中,JGit代码为git命令提供了Java API,而EGit使用JGit为Eclipse IDE提供git支持。
就我个人而言,我有时也觉得这有点令人困惑,有时似乎有这么多的事情在某些方面降低了这些组织的重点;然而,我也可以看到有一个伞式组织而不是20个类似但不同的组织的效用。

vcudknz3

vcudknz34#

JGit是git从头开始实现的Java库,而JavaGit是(曾经是?)一个 Package 原生git实现的Java API(即调用原生git命令行)。
EGit是将JGit集成到Eclipse IDE中的Git Eclipse团队提供程序,并提供了从Eclipse内部使用Git的UI。
与此同时,Eclipse社区的很大一部分以及大量的公司开发人员正在使用EGit/JGit(这就是为什么支持这些项目的公司会投入资金的原因)。如果你想了解谁在贡献,请参阅项目页面(1(http://www.eclipse.org/projects/project.php?id=technology.jgit),2(http://www.eclipse.org/projects/project.php?id=technology.egit))和ohloh

jobtbby3

jobtbby35#

JGit是一个操作git仓库的库,你不能单独使用JGit,除非你写一个程序来以你喜欢的方式操作git仓库。
如果您使用Eclipse作为IDE,则将EGit作为版本控制插件安装(靛蓝中默认)。EGit调用JGit,因此如果您安装EGit,则也安装了JGit。
注意,对于Netbeans,NBGit作为版本控制插件安装。NBGit还调用JGit。
JavaGit:没有积极维护?

mbyulnm0

mbyulnm06#

JGit是Git的Java实现。它是一个库,也可以在你自己的应用程序中使用。它还提供了一些CLI操作。另一方面,EGit是Git的Eclipse团队提供程序插件,它使用JGit作为Git实现。简化后,你可以说EGit是UI部分,JGit是后台部分。JGit不依赖EGit,但EGit确实依赖JGit。
出发地:https://www.eclipse.org/forums/index.php/t/273443/

相关问题