2011-10-27 18 views
5

He estado usando la API de Subclipse para crear un complemento para Eclipse que escuche los eventos de Subversion que ocurren a través del complemento Subclipse. Básicamente, estoy implementando una interfaz de escucha que luego se notifica durante el tiempo de ejecución sobre los eventos que están ocurriendo.¿Cómo crear un oyente para eventos de Git a través del complemento de EGit/JGit?

Me gustaría hacer algo similar, pero para Git. Parece que EGit (que se basa en JGit) será la mejor opción cuando se trata de utilizar otro complemento. Aunque no tengo mucha experiencia con su API. Me pregunto si alguien sabe si EGit, o el JGit subyacente, tiene una interfaz API similar para escuchar eventos de Git (como commit, push, pull, etc.).

Gracias!

Respuesta

0

Hasta ahora no hay oyentes públicos ni puntos de extensión disponibles. Hay algunos puntos de extensión en el cuadro de diálogo Confirmar y también otros diálogos, pero estos no son públicos y pueden cambiarse en el futuro. Sin embargo, para hacer un seguimiento de sus intereses, debe presentar una solicitud de mejora en el Eclipse Bugzilla en el proyecto EGit (creo que ya hay algunas solicitudes de funciones similares, por lo que puede buscarlas y votar por ellas).

5

Puede registrar oyentes a través de JGit para todos los repositorios o depósitos individuales a través de los métodos siguientes:

oyentes

globales notificadas para todos los repositorios:

org.eclipse.jgit.lib.Repository.getGlobalListenerList().addIndexChangedListener 
org.eclipse.jgit.lib.Repository.getGlobalListenerList().addConfigChangedListener 
org.eclipse.jgit.lib.Repository.getGlobalListenerList().addRefsChangedListener 

oyentes en un repositorio invidiual:

org.eclipse.jgit.lib.Repository.getListenerList().addIndexChangedListener 
org.eclipse.jgit.lib.Repository.getListenerList().addConfigChangedListener 
org.eclipse.jgit.lib.Repository.getListenerList().addRefsChangedListener 

Estos escuchas admiten eventos para cambios en el índice, cambios en la configuración del repositorio y cambios en los repos referencias de itory (ramas, etiquetas, etc.).

Usted puede encontrar todos los repositorios registrados en EGit través de lo siguiente:

Recibe las rutas absolutas a todos los repositorios presentes en EGit llamando:

org.eclipse.egit.core.Activator.getDefault().getRepositoryUtil().getConfiguredRepositories() 

Usted puede obtener un identificador para una específica Repository object creando un archivo para una ruta devuelta desde el método anterior y luego llamando al siguiente con ese archivo:

org.eclipse.egit.core.Activator.getDefault().getRepositoryCache().lookupRepository 
Cuestiones relacionadas