web-dev-qa-db-ja.com

JavaGit、JGit、EGitの選択の混乱

Gitを使用するJavaアプリケーションを作成しています。 JavaGitEGit 、および JGit

JavaGitとEGit/JGitが異なることを知っています。私が理解していないのは、EGitとJGitの違いです。どちらもEclipseプロジェクトでホストされていますが、一方はEclipse関連で、もう一方はそうではないようです。

私はEclipseを使用せず、計画もしていないので、「Eclipse統合」についてはあまり気にしません。

JGitは何らかの形でEclipseに接続されていますか? (www.Eclipse.orgでホストされており、JGitの documentation にも多くの「Eclipse」キーワードが含まれています)

3つのうち、Javaプログラム(Eclipseで書かれていない))をGitリポジトリーと連携させるには何が必要ですか?

スタンドアロンのGitライブラリ(つまり、ローカルGitインストールに依存せずに)を好む

編集:もう一つの質問:

編集:私は答えを見つけました-それはします(まだ試していません)。 transportというクラスのBundleWriterパッケージにあります

80
Jus12

JGitをスタンドアロンライブラリとして使用できますが、 JGitホームページ で説明されているように:

JGitは次の場所にあります。
* EGit、GitのEclipseチームプロバイダー

その意味で、JGitはEclipseに接続され、EGitはJGit機能を使用してEclipse Gitプラグインを開発します。
すべてのEclipseプロジェクトが(以前のCVSリポジトリの代わりに)Gitリポジトリでバージョン管理されるようになったことを考慮すると、JavaプロジェクトのJGitを検討します。

  • JavaGitはかなり長い間更新されていません(2008)
  • EclipseはEGitを介してGitの適切なサポートを提供することを約束します。これにより、JGit(EGitで使用)の開発を拡張することができます。

ThorbjørnRavn Andersen コメント:

EgitはJGitを使用していると言いますが、上記ではEGitがgitのEclipseプラグインであり、CVSがEclipseですでにサポートされているのと同じ方法でgitサポートを提供していることは明確ではありません

Eclipseプロジェクトの移行 CVSからGitへの進行中 、および ここで報告されています (Chris Aniszczykによる)。

複数のプロジェクトの開発者リストで、CVSからGitへのプロジェクトコードの移行に関する会話を監視しました。
ほとんどの開発者は、新しい環境で生産性を上げる方法を理解する際に、移行に伴う多くの新しい学習が懸念されるにもかかわらず、移行の価値提案を理解しているようです。

必然的に、EGitプロジェクトによって開発されているGitのチームプロバイダーに関する議論は、会話の重要な部分になります。 「EGitはプライムタイムに向けて準備ができていますか?」

公式のバグは、現在GitリポジトリにあるすべてのEclipseプロジェクトに「適切なツールサポート」を提供するというEclipseの取り組みを示しています bug 293192 です。

Gitを優先して古いVCSを廃止するには( bug 270854 )、適切なツールが利用可能である必要があります。このバグは、それを追跡するために作成されています。
[...]関連するEGitバグを開いてリンクし、不足しているものの可視性/追跡を改善しました。

そのため、Egitは、そのバグで参照される唯一のプロジェクトであり、すべてのEclipseプロジェクトに選択された新しい(D)VCSに適切なツールサポートを提供します。

bug 270854 は約古いVCSツールを廃止、本質的にCVSを含む)


ちょうど(2001年3月17日):EclipseのGitの状態-2011年初頭Chris Aniszczyk ):

Eclipse Marketplaceの統計とプロジェクトが受け取ったコミュニティの貢献に基づいて、昨年から非常に長い道のりを歩んできたことを嬉しく思います。

EGit installation rate

それでは、次は何ですか?ツールに関しては、1.0リリース(Indigoリリースで計画されています)に近づいています。
Eclipseのgitツールは最近改善されています。ヘルプが必要な場合や質問がある場合は、最も優れたEGitユーザーガイド

あなたがEclipse.orgプロジェクト、プロジェクトリポジトリをGitに移動するプロセスの開始を検討してください。 Gitにはすでに多くのEclipse.orgプロジェクトがあります
すべてのEclipse.orgプロジェクトがIndigoのリリースまでにGitに移行する計画を持っているのを見るのはいいことです。

55
VonC

JGitとEGitの著者の1人として、混乱をおかけして申し訳ありません。

JGit は、EDL(新しいスタイルのBSD)ライセンス、軽量、純粋なJava Gitバージョン管理システムを実装するライブラリです。スタンドアロンで使用でき、 Gerrit、Eclipse、Netbeans、IntelliJなどのアプリケーションに組み込まれています。 EGit JGitを埋め込み、Gitリポジトリを操作し、Eclipse内からGitコンストラクトを公開するために使用します。現時点では、JGitはgitをサポートしていません-bundleコマンドですが、サポートへの貢献を歓迎します。それほど難しくないはずです。貢献者ガイドをご覧ください。

42
Chris Aniszczyk

ちょうど今この質問に私がつまずいたように、ちょうどチャイムに。

Eclipse FoundationとEclipse IDEには違いがあります。 Foundationは包括的な組織であり、IDEはFoundationを通じて開発されたプロジェクトの1つです。したがって、重要なことは、ApacheがWebサーバーで始まり、多数のプロジェクトをホストする財団になるため、Eclipse FoundationはIDEの「ルート」を超えて拡張されました。

したがって、このコンテキストでは、JGitコードはgitコマンドにJava APIを提供しますが、EGitはEclipse IDEのgitサポートを提供するためにJGitを使用します。

個人的には、これは時々少し混乱することもあります。時には、あまりにも多くのことを行うと、何らかの形でこれらの組織の焦点が低下するように思えます。ただし、20の類似しているが異なる組織ではなく、1つの包括的な組織を持つことの有用性も確認できます。

4
Robert

JGitはJavaライブラリとしてゼロからgit実装されていますが、JavaGitは(だった?)a Javaネイティブgit実装をラップするAPI(つまり、ネイティブgitを呼び出しています)コマンドライン)。

EGitは、JGitをEclipse IDE=に統合するGit Eclipse Team Providerです。Eclipse内からGitを操作するためのUIを提供しています。

それまでは、Eclipseコミュニティの大部分と多数の企業開発者がEGit/JGitを使用しています(これが、これらのプロジェクトを支援する企業が資金を投入する理由です)。 プロジェクトページ および ohloh を参照してください。貢献者についての洞察を得たい場合。

3
Matthias Sohn

JGitは、gitリポジトリを操作するためのライブラリです。 gitリポジトリを好みの方法で操作するプログラムを作成しない限り、JGitだけを使用することはありません。

EclipseをIDEとして使用する場合、EGitをバージョン管理プラグインとしてインストールします(Indigoでデフォルト設定)。 EGitはJGitを呼び出すため、EGitをインストールするとJGitもインストールされます。

Netbeansの場合、バージョン管理プラグインとしてNBGitをインストールすることに注意してください。 NBGitはJGitも呼び出します。

JavaGit:積極的に保守されていませんか?

0
linquize

JGitはGitのJava実装です。独自のアプリケーションでも使用できるライブラリです。また、何らかのCLI操作を提供します。反対側のEGitはEclipseチームです。 Gitの実装としてJGitを使用するGitのプロバイダープラグイン。EGitがUIパーツであり、JGitがバックグラウンドパーツであると簡略化できます。JGitはEGitに依存しませんが、EGitはJGitに依存します。

From: https://www.Eclipse.org/forums/index.php/t/273443/

0
chammu