JavaGit、JGit、EGitのいずれかを選択する際の混乱


82

Gitを使ったJavaアプリケーションを作っています。JavaGitEGitJGitと呼ばれるものがあることがわかりました 。

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

私はEclipseを使用しておらず、使用する予定もないので、「Eclipse統合」についてはあまり気にしません。

JGitはどういうわけかEclipseに接続されていますか?(www.eclipse.orgでホストされており、JGitのドキュメントにも多くの「eclipse」キーワードが含まれています)

3つのうち、Gitリポジトリと連携するためにJavaプログラム(Eclipseで記述されていない)を接続するために何が必要ですか?

私はスタンドアロンのGitライブラリを好みます(つまり、ローカルのGitインストールに依存しません)

編集:もう1つの質問:

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

回答:


56

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

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

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

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

ThorbjørnRavnAndersenのコメント:

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

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

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

必然的に、EGitプロジェクトによって開発されているGitのチームプロバイダーについての議論は、会話の重要な部分になります。「EGitはプライムタイムの準備ができていますか?」多くの場合、跳ね返った質問です

現在GitリポジトリにあるすべてのEclipseプロジェクトに「適切なツールサポート」を提供するというEclipseのコミットメントを示す公式のバグは、バグ293192です。

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

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

バグ270854は、本質的にCVSを含む古いVCSツールの非推奨に関するものです。)


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

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

EGitインストール率

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

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


EgitがJGitを使用していると言っても、上記では、EGitがGit用のEclipseプラグインであり、CVSがすでにEclipseでサポートされているのと同じ方法でgitをサポートしていることは明らかではありません。
–ThorbjørnRavn Andersen 2011

eclipse.orgでホストされているからといって、Eclipseと関係があるとは限りません。
jus12 2011年

@ Jus12 @Thorbjørn:EclipseプロジェクトでのEgitの役割を説明するためにいくつかの要素を追加しました。
vonC 2011年

JavaGitはかなり古いものであり、JGitが複雑すぎて使用できないことが判明した場合にのみ見ていたことに同意します。
jus12 2011年

1
@ Jus12:Jetty HTTPサーバーもEclipse.org(eclipse.org/jetty)でホストされるようになり、EclipseIDE自体とは何の関係もありません。Jettyはスタンドアロンで使用することも、Eclipse関連のプロジェクトではなく他のプロジェクトに組み込むこともできます。
ピーターŠtibraný

43

JGitとEGitの作者の一人として、混乱してすみません。

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


4

ちょうど今この質問に出くわしたので、チャイムを鳴らしてください。

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

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

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


3

JGitはJavaライブラリとして最初からgit実装されていますが、JavaGitはネイティブのgit実装をラップするJava APIです(つまり、ネイティブのgitコマンドラインを呼び出しています)。

EGitは、JGitをEclipseIDEに統合するGitEclipseチームプロバイダーであり、Eclipse内からGitと連携するためのUIを提供しています。

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


0

JGitは、gitリポジトリを操作するためのライブラリです。gitリポジトリを好きなように操作するプログラムを作成しない限り、JGitを単独で使用することはありません。

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

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

JavaGit:積極的にメンテナンスされていませんか?


0

JGitはGitのJava実装です。これはライブラリであり、独自のアプリケーションでも使用できます。また、ある種のCLI操作も提供します。反対側のEGitは、Gitの実装としてJGitを使用するGit用のEclipseチームプロバイダープラグインです。簡単に言うと、EGitはUI部分であり、JGitは背景部分であると言えます。JGitはEGitに依存しませんが、EGitはJGitに依存します。

差出人:https//www.eclipse.org/forums/index.php/t/273443/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.