2013-03-04 20 views
18

Utilizzo EGit (per Eclipse) con un team di sviluppatori. Abbiamo creato molte filiali feature e fix per nuovi lavori e quindi le abbiamo unite nei nostri rami release al termine. Subito dopo la fusione nel ramo release corretto, questi rami temporanei vengono solitamente cancellati per mantenere pulito il nostro repository remoto.EGit: eliminazione dei rami di rilevamento remoto che sono stati eliminati su Remote Repo

Sto notando che quando questi rami vengono eliminati, recupererò dal repository remoto, ma EGit non li rimuoverà dalla mia vista di monitoraggio remoto. La mia vista di localizzazione remota mostrerà ancora i rami cancellati che non sono più sul repository remoto (e non vi è alcuna indicazione che siano stati cancellati). L'unico modo (ho trovato) di avere la mia vista di tracciamento remoto riflette il repository effettivo è quello di eliminare tutti i miei rami di localizzazione remoti manualmente (evidenziare ed eliminare), e poi recuperarli di nuovo. Questo sembra molto rotonda, soprattutto perché si può potare i rami a distanza tramite linea di comando, in questo modo:

git remote prune origin

In sostanza, quello che vorrei sapere è se c'è un modo per configurare/rendere EGit eseguire questa eliminazione quando i rami di monitoraggio remoto cambiano (dopo aver recuperato). Ecco il mio attuale configurazione del recupero sul mio origin remota:

enter image description here

risposta

22

aggiornamento di marzo 2014: Come già detto da cheshire s' answer, EGit 3.3 aggiunto che caratteristica prugna.

potete vedere detto funzionalità introdotta in questo Gerrit code review in JGit (e tested here)

Il entry fetch.prune di cui al git config può essere aggiunto alla configurazione Egit:

https://wiki.eclipse.org/images/f/f8/RepositoryConfigurationSettings.png


risposta originale (Marzo 2013)

EGit esegue questa potatura quando i rami di localizzazione remota cambiano (dopo aver recuperato).

Non che io sappia.

Più in generale, eseguire qualsiasi azione dopo ogni recupero sul lato client non è possibile con i ganci.
Ha been requested ed era a un punto implementato solo sul lato server: hook post-upload (eseguito dopo un recupero), ma rimosso, per motivi di sicurezza in un ambiente multiutente.

+0

Quindi ho capito che come un "gancio", l'esecuzione di questi tipi di script può essere una minaccia alla sicurezza. Eseguire 'prune' automaticamente dopo il recupero sarebbe la mia soluzione ideale.Tuttavia, la radice della mia domanda è che il comando 'prune' funziona già con la riga di comando' Git'. Quindi, anche se potessi scegliere di eseguirlo manualmente, questo risolve il mio problema. Non vedo perché EGIT non possa implementare il comando 'prune'. Sai se EGit può fare la potatura? –

+2

@StevenByle vedere la diapositiva 10 di EGit 2.3 Revisione: https://bugs.eclipse.org/bugs/attachment.cgi?id=226938. 'prune' non è supportato. – VonC

+0

Esattamente quello che volevo sapere. Apprezzo la tua diligenza :). –

8

Il recente EGit 3.3 release ha introdotto il supporto di prugne.

È possibile aggiungere una chiave fetch.prune o remote.<yourremotename>.prune a gitconfig e impostarla su true. Quando si recupera con EGit, questo eliminerà automaticamente i rami che sono stati eliminati nel repository centrale.

Problemi correlati