2013-05-15 12 views
10

Jak mogę uzyskać różnicę między dwoma zatwierdzeniami pliku dla tego samego pliku przy użyciu magit?magit: jak odróżnić ten sam plik między dwoma różnymi zatwierdzeniami w tej samej gałęzi?

Bezpośrednio z formularza git można zrobić this. Ale nie wiem jak to zrobić z poziomu magit. Od magit-status wydaje się, że d i D zwraca różnicę w repozytorium całego. Jest to dla mnie bardzo problematyczne, ponieważ repozytorium jest ogromne i powoduje, że magit (i z kolei emacs) przestaje odpowiadać. Czy istnieje sposób, aby poprosić magit, aby ograniczyć wyszukiwanie do tylko jednego pliku z repozytorium?

Próbowałem również w buforze magit-status zrobić : diff $start_commit..$end_commit -- path/to/file. To działa, ale wyjście jest prosty bufor bez podświetlania ani żadnej opcji składanymi ...

+0

możliwy duplikat [Porównaj foo.bar z dwóch różnych oddziałów w MAGIT] (http://stackoverflow.com/questions/16358936/compare-foo-bar-from-twoi-different-branches-in-magit) (biorąc pod uwagę, że gałęzie są po prostu nazwane zatwierdzeniami w git, pytania te są takie same.) – phils

Odpowiedz

5

Jednym sposobem jest użycie vc jak sugeruje this related answer - w szczególności C-u C-X v =. Jednak to zwraca bufor bez możliwości (nie) zwijania fragmentów.

5

W przypadku ktoś natknie się na to teraz, to jest teraz możliwe, aby to zrobić w MAGIT (robię to od MAGIT-log, ale prawdopodobnie można zrobić z innych też):

  1. Rodzaj d do otworzyć MAGIT-diff-popup
  2. Rodzaj =f aby określić plik, który chcesz wyświetlić (wprowadź ścieżkę względną do projektu głównego dir)
  3. Rodzaj r zrobić szereg diff. Zostaniesz zapytany o zasięg zatwierdzenia, na przykład 4abcde2..HEAD. Alternatywnie, jeśli podświetlisz zakres zatwierdzeń w magit-log, zakres zostanie ustawiony automatycznie, bez podpowiedzi.

W ten sposób znajdziesz się w buforze magit-diff wraz z podświetlaniem i zwijaniem kodu.

+0

Lub z włączonym 'magit-file-mode' (prawdopodobnie w trybie' global-magit-file-mode'), możesz użyć 'Cc Mg D r'. Możesz powiązać 'magit-file-popup' z czymś łatwiejszym do wpisania niż' C-c M-g', jeśli jest to zbyt uciążliwe. – phils

+0

'M-x magit-diff-popup' też cię tam dostanie. –

Powiązane problemy