with tutorial plugin java eclipse egit jgit

java - tutorial - integration git with eclipse



ConfusiĆ³n al elegir entre JavaGit, JGit y EGit (6)

Estoy haciendo 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 pienso hacerlo, así que realmente no me importa mucho la "integración de Eclipse".

¿Está JGit conectado de alguna manera a Eclipse? (Está alojado en www.eclipse.org, y la documentation 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 local de Git)

EDIT: Una pregunta más:

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


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

JGit es una biblioteca Java pura, liviana, con licencia EDL (estilo nuevo) que implementa el sistema de control de versiones Git. Se puede usar de manera independiente y se integra en aplicaciones como Gerrit, Eclipse, Netbeans e IntelliJ. EGit integra 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 le invitamos a contribuir con el soporte, no debería ser tan difícil, consulte nuestra guía para colaboradores.


JGit es la implementación de Java de Git. Es una biblioteca, que también se puede usar en sus propias aplicaciones. También proporciona algún tipo de operaciones de CLI. Por otro lado, EGit es el complemento del proveedor del equipo Eclipse para Git, que utiliza JGit como implementación de Git. Simplificado, podría decir que EGit es la parte de UI, y JGit la parte de fondo. JGit no depende de EGit, pero EGit depende de JGit.

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


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

Si usa Eclipse como IDE, instale EGit como un complemento de control de versiones (predeterminado en Indigo). EGit llama a JGit para que también tenga 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 mantenido activamente?


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

EGit es el proveedor del equipo Git Eclipse que integra JGit en el Eclipse IDE 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 cual las compañías que respaldan estos proyectos invierten dinero en eso). Vea las páginas del proyecto y ohloh si desea obtener una idea de quién está contribuyendo.


Puede utilizar JGit como biblioteca independiente, pero, como se menciona en la JGit :

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

En ese sentido, JGit está conectado a Eclipse porque 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 de Git (en lugar de repos previos de CVS), consideraría JGit para su proyecto de 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 debe garantizar por extensión el desarrollo de JGit (utilizado por EGit).

Thorbjørn Ravn Andersen comenta:

Aunque diga que Egit usa JGit, no está del todo claro en lo anterior que EGit sea un plugin de Eclipse para dar soporte git 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 progreso , y ha sido reportada aquí (por Chris Aniszczyk).

He monitorizado conversaciones sobre la migración del código de proyecto de CVS a Git en las listas de desarrolladores 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 surgen muchos nuevos aprendizajes a medida que descubren cómo decir productivos en el nuevo entorno.

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

El error oficial ilustró el compromiso de Eclipse de proporcionar un "soporte de herramientas adecuado" para todos los proyectos de Eclipse, ahora en Git Repo es el error 293192 .

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

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

(El error 270854 trata sobre la eliminación de antiguas herramientas VCS , que incluye esencialmente CVS).

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

Estoy feliz de que las cosas hayan recorrido un largo camino desde el año pasado, según las estadísticas de Eclipse Marketplace y las contribuciones de la comunidad que recibieron los proyectos.

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

Si es un proyecto de eclipse.org , considere comenzar el proceso para mover su repositorio de 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 por el lanzamiento de Indigo.


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

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 es saber que, justo cuando Apache comenzó con el servidor web y se ramificó para convertirse en una Fundación anfitriona de varios proyectos, también la Eclipse Foundation se ha expandido más allá de sus "raíces" en el IDE.

Entonces, 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 me resulta un poco confuso a veces, y a veces parece que tener tantas cosas de por medio ha degradado 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.