Wpisywanie svn log
wyrzuca niesamowicie długą, bezużyteczną listę w wierszu poleceń. Nie mam pojęcia, dlaczego to jest domyślne. Gdybym chciał przeczytać (a nawet czytać) 300 wpisów na terminalu, nie miałbym nic przeciwko pisaniusvn log --full
lub czymś podobnym.
Być może faceci SVN myślą, że chciałbym przekazać to wyjście do innego programu. Jednak w takim przypadku bardziej sensowne byłoby bardziej szczegółowe wywołanie programu - nie użytkownika terminala.
W każdym razie, jak mogę zobaczyć ostatnie aktywności, takie jak ostatnie 5 lub 10 wpisów, aby zobaczyć, co się zmieniło?
git log
.Odpowiedzi:
limit
opcja, np .:Tylko 4 ostatnie wpisy
źródło
Oprócz tego, co powiedział Bert F , wiele poleceń, w tym także
log
ma opcję-r
(lub--revision
). Poniżej przedstawiono kilka praktycznych przykładów używania tej opcji do wyświetlania zakresów wersji:Aby wyświetlić listę w porządku rosnącym:
Aby wyświetlić listę w kolejności malejącej:
Aby wyświetlić wszystko od trzynastego do podstawy aktualnie sprawdzanej wersji w porządku rosnącym:
Aby uzyskać wszystko między podanymi datami:
Możesz połączyć wszystkie powyższe wyrażenia z
--limit
opcją, aby mieć dość szczegółową kontrolę nad tym, co jest drukowane. Więcej informacji na temat tych-r
wyrażeń znajduje sięsvn help log
w odpowiednim rozdziale książki Kontrola wersji z Subversionźródło
svn log .
może zwrócić mi tylko najwcześniejszą wersję (podobnie zsvn log --limit 4 .
); ale jeśli zadzwonięsvn log -r HEAD:1 .
, w końcu otrzymam wszystkie wpisy na liście ... Jeszcze raz dziękuję - na zdrowie!svn log
pokazuje tylko historię zmian bieżącej ścieżki.Lubię używać
-v
w trybie pełnym.Otrzymasz identyfikator zatwierdzenia, komentarze i wszystkie pliki, których dotyczy problem.
Przykład wyniku:
źródło
Przeprowadź wyjście przez
less
lub inny pager:źródło
Jeśli ktoś patrzy na to stare pytanie, przydatne polecenie, aby zobaczyć zmiany od ostatniej aktualizacji:
svn log -r $(svn info | grep Revision | cut -f 2 -d ' '):HEAD -v
LE (dzięki Gary za komentarz) to
samo, ale o wiele krótsze i bardziej logiczne:
svn log -r BASE:HEAD -v
źródło
svn log -r BASE:HEAD -v
Aby dodać do tego, co powiedzieli inni, możesz również utworzyć alias w pliku .bashrc lub .bash_aliases:
lub cokolwiek chcesz jako domyślne
źródło
Jak już zauważyłeś,
svn log
polecenie uruchomione bez żadnych argumentów pokazuje wszystkie komunikaty dziennika dotyczące podanego adresu URL lub folderu kopii roboczej, w którym uruchomiono polecenie.Zawsze możesz zawęzić / ograniczyć
svn log
wyniki:svn log --limit NUM
pokaże tylko pierwszą liczbę poprawek,svn log --revision REV1(:REV2)
pokaże komunikat w dzienniku dla wersji REV1 lub dla zakresu REV1 - REV2,svn log --search
wyświetli wersje pasujące do określonego wzorca wyszukiwania (polecenie jest dostępne w Subversion 1.8 i nowszych klientach). Możesz wyszukiwać wedługźródło
Ta odpowiedź dotyczy dalszych pytań dotyczących opcji komend Subversion. Dla każdej dostępnej podkomendy (tj. Dodawania, dziennika, statusu ...) możesz po prostu dodać
--help
opcję wyświetlania pełnej listy dostępnych opcji, których możesz użyć z podkomendą, a także przykłady ich użycia. Poniższy fragment kodu jest pobierany bezpośrednio z danychsvn log --help
wyjściowych polecenia w sekcji „przykłady”:źródło
Ale dziennik svn jest nadal w odwrotnej kolejności, tzn. Najnowsze wpisy są wypisywane jako pierwsze, przewijane u góry mojego terminalu i zniknęły. Naprawdę chcę zobaczyć ostatnie wpisy, tzn. Kolejność sortowania musi być chronologiczna. Wydaje się, że to jedyne polecenie
svn log -r 1:HEAD
jednak zajmuje dużo więcej czasu w repozytorium z około 10000 pozycji. Wymyśliłem to:Wyświetl 10 ostatnich pozycji subversion w kolejności chronologicznej:
źródło