web-dev-qa-db-fra.com

Confusion dans le choix entre JavaGit, JGit et EGit

Je fais une Java application qui utilise Git. J'ai trouvé qu'il y avait quelque chose appelé JavaGit , EGit et JGit .

Je sais que JavaGit et EGit/JGit sont différents. Ce que je ne comprends pas, c'est la différence entre EGit et JGit. Les deux sont hébergés sur des projets Eclipse mais l'un semble être lié à Eclipse et l'autre non.

Je n'utilise pas Eclipse et je n'envisage pas de le faire, donc je ne me soucie pas vraiment de "l'intégration Eclipse".

JGit est-il en quelque sorte connecté à Eclipse? (Il est hébergé sur www.Eclipse.org, et la documentation de JGit contient également beaucoup de mots clés "Eclipse")

Sur les trois, de quoi aurai-je besoin pour connecter mon Java (non écrit dans Eclipse) pour fonctionner avec les référentiels Git?

Je préférerais une bibliothèque Git autonome (c'est-à-dire sans dépendre d'une installation Git locale)

EDIT: Encore une question:

EDIT: J'ai trouvé la réponse - elle le fait (je ne l'ai pas encore essayé). Il se trouve dans le package transport dans une classe appelée BundleWriter

80
Jus12

Vous pouvez utiliser JGit comme bibliothèque autonome, mais, comme mentionné dans la page d'accueil JGit :

JGit se trouve dans:
* EGit, fournisseur d'équipe Eclipse pour Git

En ce sens, JGit est connecté à Eclipse dans la mesure où EGit utilise les fonctionnalités JGit pour développer le plugin Eclipse Git.
Étant donné que tous les projets Eclipse sont désormais versionnés dans les dépôts Git (au lieu des dépôts CVS précédemment), je considérerais JGit pour votre projet Java, car il semble que:

  • JavaGit n'est pas mis à jour depuis un certain temps (2008)
  • Eclipse s'engage à offrir un bon support pour Git via EGit, qui devrait assurer par extension le développement de JGit (utilisé par EGit).

Thorbjørn Ravn Andersen commentaires:

Même si vous dites qu'Egit utilise JGit, il n'est pas tout à fait clair dans ce qui précède qu'EGit est un plugin Eclipse pour git offrant un support git de la même manière que CVS est déjà pris en charge dans Eclipse

La migration des projets Eclipse de CVS à Git est en cours , et a été rapporté ici (par Chris Aniszczyk).

J'ai suivi les conversations concernant la migration du code de projet de CVS vers Git dans les listes de développement de plusieurs projets.
La plupart des développeurs, semble-t-il, comprennent la proposition de valeur de la migration, en dépit de leurs inquiétudes concernant le fait que la migration entraîne de nombreux nouveaux apprentissages alors qu’ils découvrent comment dire productif dans le nouvel environnement.

Inévitablement, la discussion sur le fournisseur d'équipe pour Git développé par le projet EGit devient une partie importante de la conversation. "EGit est-il prêt pour les heures de grande écoute?" Est souvent la question qui a rebondi

Le bug officiel illustrant l'engagement d'Eclipse à fournir un "support d'outillage adéquat" pour tous les projets Eclipse maintenant sur Git repo est le bug 293192 .

Afin de déprécier les anciens VCS en faveur de git ( bug 270854 ), un outillage adéquat devrait être disponible. Ce bug est créé pour suivre cela.
[...] J'ai ouvert/lié des bogues EGit pertinents afin d'avoir une meilleure visibilité/un meilleur suivi de ce qui manque.

Egit est donc le seul projet référencé dans ce bogue à fournir un support d'outils adéquat pour le nouveau (D) VCS choisi pour tous les projets Eclipse.

( bug 270854 concerne Dépréciez les anciens outils VCS , qui incluent essentiellement CVS.)


Just in (17 mars 2001): L'état de Git à Eclipse - début 2011 ( Chris Aniszczyk ):

Je suis heureux que les choses aient parcouru un long chemin depuis l'année dernière sur la base des statistiques d'Eclipse Marketplace et des contributions de la communauté que les projets ont reçues.

EGit installation rate

Et maintenant? En termes d'outils, nous nous rapprochons de notre version 1.0 (qui est prévue pour la version Indigo).
Les outils git d'Eclipse sont bien meilleurs de nos jours, si vous avez besoin d'aide ou avez des questions, veuillez commencer par le plus excellent EGit User Guide.

Si vous êtes un projet Eclipse.org, Pensez à démarrer le processus pour déplacer votre référentiel de projet vers Git. Il y a déjà beaucoup de projets Eclipse.org sur Git.
Ce serait bien de voir que tous les projets Eclipse.org ont des plans pour passer à Git par la version Indigo.

55
VonC

En tant qu'un des auteurs de JGit et EGit, désolé pour la confusion.

JGit est une bibliothèque EDL (nouveau style BSD), légère, pure Java bibliothèque implémentant le système de contrôle de version Git. Elle peut être utilisée de manière autonome et est intégré dans des applications telles que Gerrit, Eclipse, Netbeans et IntelliJ. EGit intègre JGit pour l'utiliser avec les référentiels Git et exposer les constructions Git depuis Eclipse. Pour le moment, JGit ne prend pas en charge git -bundle command mais vous êtes invités à apporter votre soutien, cela ne devrait pas être si difficile, veuillez consulter notre guide du contributeur.

42
Chris Aniszczyk

Juste pour sonner, car je suis juste tombé sur cette question tout à l'heure.

Il existe une différence entre Eclipse Foundation et Eclipse IDE. La Fondation est l'organisation faîtière, tandis que le IDE est l'un des projets développés à travers la fondation. Donc, la chose importante à savoir est que, tout comme Apache a commencé avec le serveur Web et s'est étendu à devenue une Fondation hébergeant un certain nombre de projets, la Fondation Eclipse s'est maintenant développée au-delà de ses "racines" dans l'IDE.

Dans ce contexte, le code JGit fournit donc une API Java pour les commandes git, tandis qu'EGit utilise JGit pour fournir la prise en charge git de l'IDE Eclipse.

Personnellement, je trouve aussi cela un peu déroutant à certains moments, et parfois il semble presque qu'avoir tant de choses a en quelque sorte dégradé la concentration de ces organisations; mais je peux aussi voir l'utilité d'avoir une organisation faîtière au lieu de 20 organisations similaires mais différentes.

4
Robert

JGit est git implémenté à partir de zéro comme une bibliothèque Java alors que JavaGit est (était?) Une Java API enveloppant l'implémentation git native (c'est-à-dire qu'il appelle la git native) ligne de commande).

EGit est le fournisseur d'équipe Git Eclipse intégrant JGit dans Eclipse IDE et fournit l'interface utilisateur pour travailler avec Git depuis l'intérieur d'Eclipse.

Dans l'intervalle, une grande partie de la communauté Eclipse et également un grand nombre de développeurs d'entreprise utilisent EGit/JGit (c'est la raison pour laquelle les entreprises qui soutiennent ces projets y ont investi). Voir les pages du projet et ohloh si vous voulez avoir une idée de qui contribue.

3
Matthias Sohn

JGit est une bibliothèque pour manipuler le référentiel git. Vous n'utilisez pas JGit seul, sauf si vous écrivez un programme pour manipuler le référentiel git comme vous le souhaitez.

Si vous utilisez Eclipse comme IDE, vous installez EGit en tant que plugin de contrôle de version (par défaut dans Indigo). EGit appelle JGit, vous avez donc également installé JGit si vous installez EGit.

Remarque, pour Netbeans, vous installez NBGit en tant que plugin de contrôle de version. NBGit appelle également JGit.

JavaGit: pas activement maintenu?

0
linquize

JGit est l'implémentation Java Java de Git. C'est une bibliothèque, qui peut également être utilisée dans vos propres applications. Elle fournit également une sorte d'opérations CLI. EGit de l'autre côté est l'équipe Eclipse plugin fournisseur pour Git, qui utilise JGit comme implémentation de Git. Simplifié, vous pourriez dire que EGit est la partie interface utilisateur et JGit la partie arrière-plan. JGit ne dépend pas d'EGit, mais EGit dépend de JGit.

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

0
chammu