Confusión al elegir entre JavaGit, JGit y EGit


Estoy haciendo una aplicación Java que usa Git. Encontré que hay algo llamado JavaGit, EGit y JGit.

Sé que JavaGit y EGit/JGit son diferentes. Lo que no entiendo es la diferencia entre EGit y JGit. Ambos están alojados en proyectos de Eclipse, pero uno parece estar relacionado con Eclipse y el otro no.

No uso Eclipse y no planeo hacerlo, así que realmente no me importa mucho la "integración de Eclipse".

Es JGit ¿de alguna manera conectado con Eclipse? (Está alojado en www.eclipse.org, y la documentación de JGit también tiene muchas palabras clave "eclipse" dentro)

De los tres, ¿qué necesitaré para conectar mi programa Java (no escrito en Eclipse) para trabajar con repositorios Git?

Preferiría una biblioteca Git independiente (es decir, sin depender de una instalación Git local)

EDITAR: Una pregunta más:

EDITAR: Encontré la respuesta does lo hace (no lo he probado todavía). Está en el paquete transport en una clase llamada BundleWriter

Author: Jus12, 2011-03-17

6 answers

Puede usar JGit como biblioteca independiente, pero, como se menciona en la página de inicio de JGit :

JGit se puede encontrar dentro de:
* EGit, proveedor del equipo Eclipse para Git

En ese sentido, JGit está conectado a Eclipse en que EGit usa las características de JGit para desarrollar el complemento Eclipse Git.
Teniendo en cuenta que todos los proyectos de Eclipse ahora están versionados en repositorios Git (en lugar de repositorios CVS anteriores), consideraría JGit para su proyecto Java, como parece que:

  • JavaGit no se actualiza desde hace bastante tiempo (2008)
  • Eclipse se compromete a ofrecer un buen soporte para Git a través de EGit, que debería garantizar por extensión el desarrollo de JGit (utilizado por EGit).

Thorbjørn Ravn Andersen comentarios:

A pesar de que usted dice que Egit usa JGit, no está muy claro en lo anterior que EGit es un complemento de Eclipse para git que da soporte a git de la misma manera que CVS ya está soportado en Eclipse

La migración de los proyectos de Eclipse de CVS a Git está en curso, y se ha informado aquí (por Chris Aniszczyk).

He monitoreado conversaciones relacionadas con la migración de código de proyecto de CVS a Git en las listas de desarrollo de varios proyectos.
La mayoría de los desarrolladores, al parecer, entienden la propuesta de valor de la migración, a pesar de sus preocupaciones de que con la migración viene una gran cantidad de nuevos aprendizajes a medida que descubren cómo decir productivo en el nuevo entorno.

Inevitablemente, la discusión sobre el proveedor de equipo para Git que está siendo desarrollado por el proyecto EGit se convierte en una parte prominente de la conversación. "Is EGit ready for primetime?"es a menudo la pregunta que rebotó alrededor

El bug oficial que ilustra el compromiso de Eclipse de proporcionar "soporte de herramientas adecuado" para todos los proyectos de Eclipse ahora en el repositorio de Git es el bug 293192 de.

Con el fin de desaprobar los antiguos VCS a favor de git ( bug 270854 ), herramientas adecuadas debería estar disponible. Este error se crea para rastrear eso.
[...] Abrí / enlazé relevantes EGit bugs con el fin de tener una mejor visibilidad / seguimiento de lo que falta.

Así que Egit es el único proyecto al que se hace referencia en ese error que proporciona dicho soporte de herramientas adecuado para el nuevo (D)VCS elegido para todos los proyectos de Eclipse.

(el error 270854 es sobre Obsoleta las herramientas antiguas de VCS, que incluye esencialmente CVS.)


Justo en (17 de marzo, 2001): El estado de Git en Eclipse-Early 2011 (Chris Aniszczyk):

Estoy feliz de que las cosas hayan recorrido un largo camino desde el año pasado basado en las estadísticas del Eclipse Marketplace y las contribuciones de la comunidad que los proyectos han recibido.

Tasa de instalación EGit

Entonces, ¿qué sigue? En términos de herramientas, nos estamos acercando a nuestra versión 1.0 (que está prevista para el Indigo lanzar).
Las herramientas de git en Eclipse son mucho mejores en estos días, si necesita ayuda o tiene preguntas, comience con la más excelente Guía del Usuario de EGit.

Si eres un proyecto eclipse.org, considera iniciar el proceso para mover tu repositorio de proyectos a Git. Hay un montón de eclipse.org proyectos ya en Git.
Sería bueno ver el todo de la eclipse.org los proyectos tienen planes para pasar a Git por el Índigo lanzar.

 54
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:02:10

Como uno de los autores de JGit y EGit, perdón por la confusión.

JGit es una librería Java con licencia EDL (new-style BSD), ligera y pura que implementa el sistema de control de versiones Git. Se puede utilizar de forma independiente y está integrado en aplicaciones como Gerrit, Eclipse, Netbeans e IntelliJ. EGit integra JGit para usarlo para trabajar con repositorios Git y exponer construcciones Git desde Eclipse. Por el momento, JGit no soporta el git-bundle pero le invitamos a contribuir con soporte, no debería ser tan difícil, consulte nuestra guía para colaboradores.

 41
Author: Chris Aniszczyk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-21 15:34:09

Solo para intervenir, ya que acabo de tropezar con esta esta pregunta justo ahora.

Hay una diferencia entre la Fundación Eclipse y el IDE Eclipse. La Fundación es la organización paraguas, mientras que el IDE es uno de los proyectos desarrollados a través de la fundación. Por lo tanto, lo importante es saber que así como Apache comenzó con el servidor web y se ramificó para convertirse en una Fundación que aloja una serie de proyectos, también la Fundación Eclipse se ha expandido más allá de sus "raíces" en IDE.

En este contexto, el código JGit proporciona una API Java para los comandos git, mientras que EGit usa JGit para proporcionar soporte git para el IDE de Eclipse.

Personalmente, también encuentro esto un poco confuso a veces, y a veces casi parece que tener tanto sucediendo ha degradado de alguna manera el enfoque de estas organizaciones; sin embargo, también puedo ver la utilidad de tener una organización paraguas en lugar de 20 organizaciones similares pero diferentes.

 4
Author: Robert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-28 18:58:21

JGit es git implementado desde cero como una biblioteca Java, mientras que JavaGit es (was ?) una API Java que envuelve la implementación nativa de git (es decir, está llamando a la línea de comandos nativa de git).

EGit es el Proveedor del Equipo de Git Eclipse que integra JGit en el IDE de Eclipse y proporciona la interfaz de usuario para trabajar con Git desde dentro de Eclipse.

Mientras tanto, una gran parte de la comunidad de Eclipse y también un gran número de desarrolladores corporativos está utilizando EGit / JGit (esa es la razón por la las empresas que apoyan estos proyectos ponen dinero en eso). Consulte las páginas del proyecto y ohloh si desea obtener una idea de quién está contribuyendo.

 3
Author: Matthias Sohn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-07 01:23:24

JGit es una biblioteca para manipular el repositorio git. No usas JGit solo, a menos que escribas un programa para manipular el repositorio git de la manera que quieras.

Si usas Eclipse como IDE, instalas EGit como un plugin de control de versiones (predeterminado en Indigo). EGit llama a JGit por lo que también tiene JGit instalado si instala EGit.

Tenga en cuenta que, para Netbeans, instala NBGit como un complemento de control de versiones. NBGit también llama a JGit.

JavaGit: ¿no se mantiene activamente?

 0
Author: linquize,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-26 14:51:29

JGit es la implementación Java de Git. Es una biblioteca, que también se puede utilizar en sus propias aplicaciones. También proporciona algún tipo de operaciones CLI. EGit por otro lado está el plugin Eclipse team provider para Git, que usa JGit como implementación de Git. Simplificado se podría decir que EGit es la parte de la interfaz de usuario, y JGit la parte de fondo. JGit no depende de EGit, pero EGit sí depende de JGit.

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

 0
Author: chammu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-18 04:26:34