Confusión al elegir entre JavaGit, JGit y EGit


83

Estoy creando una aplicación Java que usa Git. Descubrí 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".

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

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

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

EDITAR: Una pregunta más:

EDITAR: Encontré la respuesta: sí (aún no lo he probado). Está en transportpaquete en una clase llamadaBundleWriter

Respuestas:


57

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

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

En ese sentido, JGit está conectado a Eclipse en el sentido de que EGit usa las funciones 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 anteriormente), consideraría JGit para su proyecto Java, ya que 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 comenta:

Aunque dice que Egit usa JGit, no está del todo claro en lo anterior que EGit es un complemento de Eclipse para git que brinda soporte a git de la misma manera que CVS ya es compatible con Eclipse.

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

He monitoreado conversaciones sobre la migración del código del proyecto de CVS a Git en las listas de desarrollo de varios proyectos.
La mayoría de los desarrolladores, al parecer, comprenden la propuesta de valor de la migración, a pesar de su preocupación de que con la migración se obtenga una gran cantidad de aprendizaje nuevo a medida que descubren cómo decir productivo en el nuevo entorno.

Inevitablemente, la discusión sobre el proveedor del equipo para Git que está desarrollando el proyecto EGit se convierte en una parte prominente de la conversación. "¿EGit está listo para el horario estelar?" es a menudo la pregunta que rebota

El error 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 error 293192 .

Para desaprobar el antiguo VCS en favor de git ( error 270854 ), debería haber disponibles herramientas adecuadas. Este error se crea para rastrear eso.
[...] Abrí / vinculé errores relevantes de EGit para tener una mejor visibilidad / seguimiento de lo que faltaba.

Por lo tanto, 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 trata sobre las herramientas VCS obsoletas , que incluyen esencialmente CVS).


Recién en (17 de marzo de 2001): The State of Git at Eclipse - Early 2011 ( Chris Aniszczyk ):

Estoy feliz de que las cosas hayan avanzado bastante desde el año pasado según las estadísticas de Eclipse Marketplace y las contribuciones de la comunidad que han recibido los proyectos.

Tasa de instalación de EGit

¿Qué es lo siguiente? En términos de herramientas, nos estamos acercando a nuestra versión 1.0 (que está planificada para la versión Indigo).
Las herramientas de git en Eclipse son mucho mejores en estos días, si necesita ayuda o tiene preguntas, comience con la guía de usuario de EGit más excelente .

Si es un eclipse.orgproyecto, considere iniciar el proceso para mover el repositorio de su proyecto a Git. Ya hay muchos proyectos de eclipse.org en Git .
Sería bueno ver que todos los proyectos de eclipse.org tienen planes de pasar a Git en el lanzamiento de Indigo.


Aunque dice que Egit usa JGit, no está del todo claro en lo anterior que EGit es un complemento de Eclipse para git que brinda soporte a git de la misma manera que CVS ya es compatible con Eclipse.
Thorbjørn Ravn Andersen

así que el hecho de que esté alojado en eclipse.org no significa que tenga algo que ver con Eclipse.
Jus12

@ Jus12 @ Thorbjørn: He añadido algunos elementos para ilustrar el papel de Egit para los proyectos Eclipse.
VonC

Estoy de acuerdo en que JavaGit es bastante antiguo y solo lo estaba viendo en caso de que JGit resultara demasiado complicado de usar.
Jus12

1
@ Jus12: El servidor HTTP Jetty ahora también está alojado en Eclipse.org ( eclipse.org/jetty ), y no tiene nada que ver con Eclipse IDE en sí. Jetty se puede utilizar de forma independiente o incrustado en otros proyectos, no relacionados con Eclipse.
Peter Štibraný

43

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

JGit es una biblioteca Java pura, ligera y con licencia EDL (BSD de nuevo estilo) 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 incorpora JGit para usarlo para trabajar con repositorios de Git y exponer construcciones de Git desde Eclipse. Por el momento, JGit no es compatible con el comando git-bundle, pero puedes contribuir con el soporte, no debería ser tan difícil, consulta nuestra guía para colaboradores.


4

Solo para intervenir, ya que acabo de tropezar con esta esta pregunta hace un momento.

Existe una diferencia entre Eclipse Foundation y Eclipse IDE. 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. Entonces, lo importante que debe saber es que así como Apache comenzó con el servidor web y se expandió para convertirse en una Fundación que aloja varios proyectos, la Fundación Eclipse ahora se expandió más allá de sus "raíces" en el IDE.

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

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


3

JGit está implementado en git desde cero como una biblioteca de Java, mientras que JavaGit es (¿era?) Una API de 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 una gran cantidad de desarrolladores corporativos está utilizando EGit / JGit (esa es la razón por la que las empresas que respaldan estos proyectos invierten dinero en eso). Consulte las páginas del proyecto y ohloh si desea obtener una idea de quién está contribuyendo.


0

JGit es una biblioteca para manipular el repositorio de git. No usa JGit solo, a menos que escriba un programa para manipular el repositorio de git de la manera que desee.

Si usa Eclipse como IDE, instale EGit como un complemento 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

JGit es la implementación de 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. Por otro lado, EGit es el complemento del proveedor del equipo Eclipse para Git, que usa JGit como implementación de Git. Simplificado, 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/

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.