2011-10-27 11 views
5

Ho utilizzato l'API di Subclipse per creare un plug-in per Eclipse che ascolta gli eventi Subversion che si verificano tramite il plug-in Subclipse. In pratica sto implementando un'interfaccia listener che viene poi notificata durante gli eventi di run-time in corso.Come creare un listener per eventi Git tramite il plug-in EGit/JGit?

Mi piacerebbe fare qualcosa di simile, ma per Git. Sembra che EGit (che è costruito su JGit) sia l'opzione migliore quando si tratta di utilizzare un altro plug-in. Non ho molta esperienza con le loro API però. Mi chiedo se qualcuno sa se EGit, o il JGit sottostante, ha un'interfaccia API simile per l'ascolto di eventi Git (come commit, push, pull, ecc.)?

Grazie!

risposta

0

Finora non ci sono ascoltatori pubblici o punti di estensione disponibili. Ci sono alcuni punti di estensione nella finestra di dialogo Conferma e forse anche altri dialoghi, ma questi sono tutti non pubblici e potrebbero essere modificati in futuro. Tuttavia, per tenere traccia dei tuoi interessi, devi presentare una richiesta di miglioramento allo Eclipse Bugzilla nel progetto EGit (credo ci siano già alcune richieste per funzionalità simili, quindi puoi cercarle e votarle).

5

È possibile registrare gli ascoltatori attraverso JGit per tutti i repository o singole repository attraverso i seguenti metodi:

ascoltatori

globali notificati per tutti i repository:

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

ascoltatori nel repository invidiual:

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

Questi listener supportano gli eventi per le modifiche all'indice, le modifiche alla configurazione del repository e le modifiche ai repository riferimenti di itory (rami, tag, ecc.).

Potete trovare tutti i repository registrati nel EGit attraverso la seguente:

I percorsi assoluti per tutti i repository presenti in EGit chiamando:

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

È possibile ottenere un handle a una specifica Oggetto del repository creando un file per un percorso restituito dal metodo precedente e quindi chiama il seguente file:

org.eclipse.egit.core.Activator.getDefault().getRepositoryCache().lookupRepository 
Problemi correlati