Magit niedawno uzyskał wsparcie dla czegoś takiego, ale ta funkcja jest nieco szorstka na brzegach i należy ją wyraźnie włączyć.
Podobna funkcja istniała od dłuższego czasu - kiedy przechodzisz od jednego zatwierdzenia do drugiego w buforze dziennika, a innym oknem w tej samej ramce jest bufor rewizji repozytorium, wówczas bufor ten jest odświeżany, aby pokazać to zatwierdzenie zamiast cokolwiek zatwierdzić poprzednio pokazywał.
Do niedawna bufor rewizji był tworzony przy pierwszym przejściu z jednego zatwierdzenia do drugiego. Zmieniłem to zachowanie, a teraz bufor wersji jest zawsze aktualizowany . Jeśli żadne okno w tej samej ramce nie wyświetla tego bufora, wówczas poruszanie się po dzienniku nie będzie już powodować wyświetlania bufora w jakimś nowym oknie lub istniejącym oknie, które poprzednio wyświetlało inny bufor.
Więc teraz musisz nacisnąć SPCraz, aby wyświetlić bufor wersji. Dopiero wtedy zacznie się aktualizować, gdy będziesz poruszać się po buforze dziennika.
Jeśli nie chcesz, aby bufor wersji był aktualizowany, wykonaj następujące czynności:
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
Jeśli z drugiej strony chcesz również aktualizować bufor wersji podczas poruszania się w buforze stanu, użyj tego:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
Możliwe jest teraz automatyczne aktualizowanie bufora obiektów blob w podobny sposób. Najpierw dodaj to:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
A może także:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
Następnie w buforze dziennika (lub statusu) naciśnij, RETaby wyświetlić lub zaktualizować bufor wersji, a także przełączyć się na ten bufor. Przejdź do interesującego Cię pliku i naciśnij RETponownie. Znajdujesz się teraz w buforze odwiedzającym obiekty blob, który jest podobny do bufora odwiedzającego pliki, z tym wyjątkiem, że nie odwiedza on pliku w działającym drzewie, ale plik taki jak w jakimś zatwierdzeniu.
Wróć do bufora dziennika (lub statusu) i przejdź do innego zatwierdzenia. Bufor obiektów blob jest aktualizowany.
Zauważ, że wyświetlenie innego obiektu blob nie powoduje ponownego użycia istniejącego bufora obiektów blob. Zamiast tego tworzy nowy bufor, który odwiedza ten obiekt blob, a następnie wyświetla ten bufor w oknie, w którym wcześniej był wyświetlany inny bufor obiektu blob. Ten drugi bufor nie jest usuwany, co niestety oznacza, że całkiem sporo buforów może się zgromadzić w krótkim czasie. Który byłby jedną z tych szorstkich krawędzi, o których wspominałem wcześniej. Naciśnięcie qw buforze obiektów blob powoduje jego usunięcie, dzięki czemu można wyczyścić, przechodząc do okna, które było używane do wyświetlania różnych buforów obiektów blob, i naciskać, qaż wszystkie bufory zostaną usunięte.
Ponadto możliwe jest przejście do następnego lub poprzedniego obiektu blob z poziomu bufora obiektów blob za pomocą pi n. Zakładam, że w większości przypadków zaczynasz od ostatniego obiektu blob, a następnie przechodzisz wstecz do starszych obiektów blob za pomocą p. Jeśli to zrobisz, a następnie zechcesz przejść w innym kierunku, polecam użyć qdo zabicia bieżącego bufora, a tym samym przejścia do poprzedniego bufora, tj. Następnego obiektu blob.
Pamiętaj też, że nie musisz najpierw odwiedzać wersji, aby móc odwiedzić obiekt blob. Możesz także użyć M-x magit-find-file RET <revision> RET <file> RET
bezpośrednio, ale wydaje mi się to mniej wygodne.