Verwirrung bei der Wahl zwischen JavaGit, JGit und EGit

82

Ich mache eine Java-Anwendung, die Git verwendet. Ich habe festgestellt, dass es etwas gibt, das JavaGit , EGit und JGit heißt .

Ich weiß, dass JavaGit und EGit / JGit unterschiedlich sind. Was ich nicht verstehe, ist der Unterschied zwischen EGit und JGit. Beide werden in Eclipse-Projekten gehostet, aber eines scheint mit Eclipse zu tun zu haben und das andere nicht.

Ich benutze Eclipse nicht und habe auch nicht vor, daher ist mir die "Eclipse-Integration" wirklich egal.

Ist JGit irgendwie mit Eclipse verbunden? (Es wird auf www.eclipse.org gehostet und die Dokumentation von JGit enthält auch viele "Eclipse" -Schlüsselwörter.)

Was brauche ich von den dreien, um mein Java-Programm (nicht in Eclipse geschrieben) zu verbinden, um mit Git-Repositorys zu arbeiten?

Ich würde eine eigenständige Git-Bibliothek bevorzugen (dh ohne von einer lokalen Git-Installation abhängig zu sein)

EDIT: Noch eine Frage:

EDIT: Ich habe die Antwort gefunden - es tut (habe es noch nicht versucht). Es befindet sich im transportPaket in einer Klasse namensBundleWriter

Jus12
quelle

Antworten:

55

Sie können JGit als eigenständige Bibliothek verwenden, aber wie auf der JGit-Homepage erwähnt :

JGit finden Sie unter:
* EGit, Eclipse-Teamanbieter für Git

In diesem Sinne ist JGit mit Eclipse verbunden, da EGit JGit-Funktionen verwendet, um das Eclipse Git-Plugin zu entwickeln.
Angesichts der Tatsache, dass alle Eclipse-Projekte jetzt in Git-Repos (anstelle von früheren CVS-Repos) versioniert sind, würde ich JGit für Ihr Java-Projekt in Betracht ziehen, da es so aussieht:

  • JavaGit wird seit einiger Zeit nicht mehr aktualisiert (2008)
  • Eclipse hat sich verpflichtet, eine gute Unterstützung für Git über EGit anzubieten, die die Entwicklung von JGit (von EGit verwendet) durch Erweiterung sicherstellen soll.

Thorbjørn Ravn Andersen kommentiert:

Obwohl Sie sagen, dass Egit JGit verwendet, ist oben nicht ganz klar, dass EGit ein Eclipse-Plugin für Git ist, das Git-Unterstützung auf die gleiche Weise bietet, wie CVS bereits in Eclipse unterstützt wird

Die Migration von Eclipse-Projekten von CVS zu Git ist im Gange und wurde hier berichtet (von Chris Aniszczyk).

Ich habe Gespräche über die Migration von Projektcode von CVS zu Git in den Entwicklungslisten mehrerer Projekte überwacht.
Die meisten Entwickler scheinen das Wertversprechen der Migration zu verstehen, obwohl sie befürchten, dass mit der Migration eine Menge neuer Erkenntnisse einhergehen, wenn sie herausfinden, wie man in der neuen Umgebung produktiv sagt.

Die Diskussion über den vom EGit-Projekt entwickelten Teamanbieter für Git wird unweigerlich zu einem wichtigen Bestandteil des Gesprächs. "Ist EGit bereit für die Primetime?" ist oft die Frage, die herumwirbelte

Der offizielle Fehler, der die Verpflichtung von Eclipse veranschaulicht, "angemessene Tooling-Unterstützung" für alle Eclipse-Projekte bereitzustellen, die jetzt auf Git Repo verfügbar sind, ist der Fehler 293192 .

Um alte VCS zugunsten von Git ( Fehler 270854 ) zu verwerfen , sollten geeignete Werkzeuge verfügbar sein. Dieser Fehler wurde erstellt, um dies zu verfolgen.
[...] Ich habe relevante EGit-Fehler geöffnet / verknüpft , um besser sehen / verfolgen zu können, was fehlt.

Daher ist Egit das einzige Projekt, auf das in diesem Fehler verwiesen wird, das die angemessene Werkzeugunterstützung für das neue (D) VCS bietet, das für alle Eclipse-Projekte ausgewählt wurde.

(Bei Fehler 270854 geht es darum, alte VCS-Tools , die im Wesentlichen CVS enthalten, zu verwerfen .)


Nur in (17. März 2001): Der Zustand von Git bei Eclipse - Anfang 2011 ( Chris Aniszczyk ):

Ich bin froh, dass die Dinge seit letztem Jahr einen langen Weg zurückgelegt haben, basierend auf den Eclipse Marketplace-Statistiken und den Community-Beiträgen, die die Projekte erhalten haben.

EGit Installationsrate

Was kommt als nächstes? In Bezug auf die Werkzeuge nähern wir uns unserer Version 1.0 (die für die Indigo-Version geplant ist).
Das Git-Tool bei Eclipse ist heutzutage viel besser. Wenn Sie Hilfe benötigen oder Fragen haben, beginnen Sie bitte mit dem besten EGit-Benutzerhandbuch .

Wenn Sie ein eclipse.orgProjekt sind, sollten Sie den Prozess starten, um Ihr Projekt-Repository auf Git zu verschieben. Es gibt bereits viele eclipse.org-Projekte auf Git .
Es wäre schön zu sehen, dass alle eclipse.org-Projekte Pläne haben, bis zur Indigo-Veröffentlichung auf Git umzusteigen.

VonC
quelle
Obwohl Sie sagen, dass Egit JGit verwendet, ist oben nicht ganz klar, dass EGit ein Eclipse-Plugin für Git ist, das Git-Unterstützung auf die gleiche Weise bietet, wie CVS bereits in Eclipse unterstützt wird.
Thorbjørn Ravn Andersen
Nur weil es auf eclipse.org gehostet wird, heißt das nicht, dass es etwas mit Eclipse zu tun hat?
Jus12
@ Jus12 @ Thorbjørn: Ich habe einige Elemente hinzugefügt, um die Rolle von Egit für die Eclipse-Projekte zu veranschaulichen.
VonC
Ich bin damit einverstanden, dass JavaGit ziemlich alt ist, und ich habe es nur für den Fall betrachtet, dass sich herausstellt, dass JGit zu kompliziert für die Verwendung ist.
Jus12
1
@ Jus12: Der Jetty-HTTP-Server wird jetzt auch auf Eclipse.org ( eclipse.org/jetty ) gehostet und hat nichts mit der Eclipse-IDE selbst zu tun. Jetty kann eigenständig verwendet oder in andere, nicht Eclipse-bezogene Projekte eingebettet werden.
Peter Štibraný
43

Entschuldigen Sie die Verwirrung als einer der Autoren von JGit und EGit.

JGit ist eine EDL-lizenzierte (leichte BSD) lizenzierte, leichte, reine Java-Bibliothek, die das Git-Versionskontrollsystem implementiert. Es kann eigenständig verwendet werden und ist in Anwendungen wie Gerrit, Eclipse, Netbeans und IntelliJ eingebettet. EGit bettet JGit ein, um damit mit Git-Repositorys zu arbeiten und Git-Konstrukte aus Eclipse heraus verfügbar zu machen. Im Moment unterstützt JGit den Befehl git-bundle nicht, aber Sie können gerne Unterstützung leisten. Es sollte nicht so schwer sein. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.

Chris Aniszczyk
quelle
4

Nur um mich einzuschalten, da ich gerade über diese Frage gestolpert bin.

Es gibt einen Unterschied zwischen der Eclipse Foundation und der Eclipse-IDE. Die Stiftung ist die Dachorganisation, während die IDE eines der von der Stiftung entwickelten Projekte ist. Das Wichtigste ist also, dass die Eclipse Foundation, genau wie Apache mit dem Webserver begann und sich zu einer Foundation entwickelte, die eine Reihe von Projekten hostet, jetzt über ihre "Wurzeln" in der IDE hinaus expandiert.

In diesem Zusammenhang bietet der JGit-Code eine Java-API für Git-Befehle, während EGit JGit verwendet, um Git-Unterstützung für die Eclipse-IDE bereitzustellen.

Persönlich finde ich das manchmal auch etwas verwirrend, und manchmal scheint es fast so, als hätte so viel los den Fokus dieser Organisationen in gewisser Weise verschlechtert; Ich kann jedoch auch erkennen, dass es nützlich ist, eine Dachorganisation anstelle von 20 ähnlichen, aber unterschiedlichen Organisationen zu haben.

Robert
quelle
3

JGit ist Git, das von Grund auf als Java-Bibliothek implementiert wurde, während JavaGit eine Java-API ist (war?), Die die native Git-Implementierung umschließt (dh die native Git-Befehlszeile aufruft).

EGit ist der Git Eclipse Team Provider, der JGit in die Eclipse-IDE integriert und die Benutzeroberfläche für die Arbeit mit Git in Eclipse bereitstellt.

In der Zwischenzeit verwendet ein großer Teil der Eclipse-Community und auch eine große Anzahl von Unternehmensentwicklern EGit / JGit (das ist der Grund, warum die Unternehmen, die diese Projekte unterstützen, Geld dafür investieren). Sehen Sie sich die Projektseiten und ohloh an, wenn Sie einen Einblick erhalten möchten, wer dazu beiträgt.

Matthias Sohn
quelle
0

JGit ist eine Bibliothek zum Bearbeiten des Git-Repositorys. Sie verwenden JGit nicht alleine, es sei denn, Sie schreiben ein Programm, um das Git-Repository nach Ihren Wünschen zu bearbeiten.

Wenn Sie Eclipse als IDE verwenden, installieren Sie EGit als Versionskontroll-Plugin (standardmäßig in Indigo). EGit ruft JGit auf, sodass Sie JGit auch installiert haben, wenn Sie EGit installieren.

Beachten Sie, dass Sie für Netbeans NBGit als Versionskontroll-Plugin installieren. NBGit ruft auch JGit auf.

JavaGit: nicht aktiv gepflegt?

linquize
quelle
0

JGit ist die Java-Implementierung von Git. Es ist eine Bibliothek, die auch in Ihren eigenen Anwendungen verwendet werden kann. Es bietet auch eine Art von CLI-Operationen. EGit auf der anderen Seite ist das Eclipse-Team-Provider-Plugin für Git, das JGit als Git-Implementierung verwendet. Vereinfacht könnte man sagen, EGit ist der UI-Teil und JGit der Hintergrundteil. JGit hängt nicht von EGit ab, aber EGit hängt von JGit ab.

Von: https://www.eclipse.org/forums/index.php/t/273443/

Chammu
quelle