2013-03-04 6 views
18

Używam EGit (dla Eclipse) z zespołem programistów. Tworzyliśmy wiele gałęzi feature i fix dla nowej pracy, a następnie łączymy je w nasze gałęzie release po ich ukończeniu. Zaraz po tym, jak zostaną scalone w prawidłową gałąź release, te tymczasowe gałęzie są zwykle usuwane, aby nasze zdalne ponowne wywołanie było czyste.EGit: Przycinanie odległych gałęzi śledzenia, które zostały usunięte na zdalnym repoście

Zauważyłem, że gdy te gałęzie zostaną usunięte, pobiorę je z naszego zdalnego repo, ale EGit nie usunie ich z mojego zdalnego widoku śledzenia. Mój zdalny widok śledzenia nadal będzie wyświetlał usunięte gałęzie, które nie są już na zdalnym repo (i nic nie wskazuje na to, że zostały usunięte). Jedynym sposobem (jak stwierdziłem), że mój widok zdalnego śledzenia odzwierciedla rzeczywiste repozytorium, jest ręczne usunięcie wszystkich moich zdalnych gałęzi śledzenia (podświetlanie i usuwanie), a następnie pobieranie ich ponownie. To wydaje się bardzo rondo, zwłaszcza, że ​​można przycinać zdalnych oddziałów poprzez linię poleceń, tak:

git remote prune origin

Zasadniczo, co chciałbym wiedzieć, czy istnieje sposób, aby skonfigurować/make Egit wykonać to przycinanie po zmianie oddziałów śledzenia zdalnego (po pobraniu). Oto moja obecna konfiguracja sprowadzić na mój origin pilota:

enter image description here

Odpowiedz

22

Aktualizacja marzec 2014: Jak wspomniano przez cheshire „s answer, EGit 3.3 dodał, że prune funkcji.

można zobaczyć, że funkcja wprowadzona w tym Gerrit code review w JGit (i tested here)

entry fetch.prune wspomniano w git config może być dodany do Egit konfiguracji:

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


Original odpowiedzi (Marzec 2013)

EGit wykonaj to przycinanie, gdy zmieniają się gałęzie śledzenia zdalnego (po pobraniu).

Nie to, co wiem.

Mówiąc ogólniej, wykonywanie czynności po każdym pobraniu po stronie klienta nie jest możliwe z hakami.
Ma on been requested i był w pewnym momencie zaimplementowany tylko po stronie serwera: hook post-upload (uruchamiany po pobraniu), ale usunięty ze względów bezpieczeństwa w środowisku wielu użytkowników.

+0

Rozumiem, że jako "hak" uruchamianie tego typu skryptów może stanowić zagrożenie dla bezpieczeństwa. Uruchomienie 'prune' automatycznie po pobraniu byłoby moim idealnym rozwiązaniem.Jednak głównym źródłem mojego pytania jest to, że polecenie 'prune' działa już z komendą' Git'. Więc nawet jeśli mógłbym wybrać ręczne uruchamianie, to rozwiązuje mój problem. Nie rozumiem, dlaczego EGit nie może zaimplementować komendy 'prune'. Czy wiesz, czy EGIT może w ogóle wykonać cięcie? –

+2

@StevenByle zobacz slajd 10 z przeglądu EGit 2.3: https://bugs.eclipse.org/bugs/attachment.cgi?id=226938. 'prune' nie jest obsługiwane. – VonC

+0

Dokładnie to, co chciałem wiedzieć. Doceniam twoją pracowitość :). –

8

Niedawne EGit 3.3 release wprowadziło obsługę prune.

Możesz dodać fetch.prune lub remote.<yourremotename>.prune klucz do gitconfig i ustawić ją na true. Gdy pobierzesz z EGit, automatycznie przycina gałęzie, które zostały usunięte w centralnym repozytorium.