Jak wyświetlić zatwierdzenia konkretnego użytkownika w svn? Nie znalazłem żadnych przełączników do tego dla dziennika svn.
svn
bash
version-control
mimrock
źródło
źródło
--search
opcji z klientem Subversion 1.8 lub nowszym.Odpowiedzi:
Możesz użyć tego:
Pokaże ci każde zatwierdzenie dokonane przez określonego użytkownika (NAZWA UŻYTKOWNIKA).
AKTUALIZACJA
Zgodnie z sugestią @bahrep, Subversion 1.8 zawiera
--search
opcję.źródło
p
).svn log
na kopii roboczej. Możesz również określić swoje repozytorium, tjsvn log https://your-svn-repo
.--search
opcję.Z Subversion 1.8 lub nowszym:
Oprócz dopasowań autorskich, spowoduje to również wyświetlenie zatwierdzeń SVN, które zawierają tę nazwę użytkownika w komunikacie zatwierdzenia, co nie powinno mieć miejsca, jeśli nazwa użytkownika nie jest popularnym słowem.
-l 50
Będzie ograniczyć wyszukiwanie do najnowszych 50 wpisów.http://svnbook.red-bean.com/en/1.8/svn.ref.svn.html#svn.ref.svn.sw.search
źródło
svn log --search foo --search bar -l 30
.If multiple --search options are provided, a log message is shown if it matches any of the provided search patterns.
svn nie ma wbudowanych opcji do tego. Ma
svn log --xml
opcję, aby umożliwić ci samodzielne przeanalizowanie wyniku i pobranie interesujących części.Możesz napisać skrypt, aby go przeanalizować, na przykład w Pythonie 2.6:
Jeśli zapiszesz powyższe jako svnLogStripByAuthor.py, możesz nazwać to jako:
źródło
Ponieważ wydaje się, że wszyscy skłaniają się ku Linuksowi (i inni): Oto odpowiednik systemu Windows:
źródło
działa w większości.
Albo mówiąc dokładniej:
źródło
-A
wyświetlać kontekst, ale ta liczba jest statyczna, podczas gdy komunikat zatwierdzenia ma zmienną długość. Możesz znaleźć rozwiązanie z sedem lub podobnym, ale to wysiłek. : P| awk '{ print "-" $1 }' | xargs svn log
Chociaż rozwiązanie yvoyer działa dobrze, tutaj jest rozwiązanie korzystające z wyjścia SVN XML i parsujące je
xmlstarlet
.Stąd możesz przejść do bardziej zaawansowanych zapytań XML.
źródło
Oto moje rozwiązanie przy użyciu xslt. Niestety, xsltproc nie jest procesorem przesyłania strumieniowego, więc musisz określić limit dziennika. Przykładowe użycie:
svnLogFilter.xslt
svnLogText.xslt
źródło
Począwszy od Subversion 1.8, możesz używać
--search
i--search-and
opcji wiersza poleceń zsvn log
poleceniem .Powinno więc być tak proste, jak bieganie
svn log --search JohnDoe
.źródło
Możesz użyć Perla do filtrowania dziennika według nazwy użytkownika i utrzymywania komunikatów o zatwierdzeniach. Po prostu ustaw zmienną $ /, która decyduje o tym, co stanowi „linię” w Perlu. Jeśli ustawisz to jako separator wpisów dziennika SVN, Perl będzie czytać po jednym rekordzie na raz i wtedy powinieneś być w stanie dopasować nazwę użytkownika w całym rekordzie. Zobacz poniżej:
źródło
Aby uzyskać różnice wraz z checkin.
Pobierz numery wersji do pliku:
Teraz przeczytaj plik i wykonaj różnicę dla każdej wersji:
źródło
Napisałem skrypt w Pythonie:
I użyć:
źródło