W svn mam gałąź, która została utworzona, powiedzmy w wersji 22334. Następnie dokonano zatwierdzeń w gałęzi.
Jak uzyskać listę wszystkich plików, które zostały zmienione w gałęzi, w porównaniu z tym, co jest na linii głównej? Nie chcę widzieć plików, które zostały zmienione na linii głównej między momentem utworzenia gałęzi a „teraz”.
svn log
:-DOdpowiedzi:
Myślę, że to zrobi:
źródło
svn log <url of the branch> | tail
aby uzyskać najmniejszy numer wersji.svn diff -r 22334
(zauważ, że nie określono różnicy w HEAD). Spowoduje to różnicę z lokalną kopią roboczą i umożliwi dokonywanie zmian z poziomu aplikacji porównującej.Możesz także uzyskać szybką listę zmienionych plików, jeśli to wszystko, czego szukasz, używając polecenia statusu z opcją -u
To pokaże ci, jaka wersja znajduje się w pliku w bieżącej bazie kodu w porównaniu z ostatnią wersją w repozytorium. Używam diff tylko wtedy, gdy chcę zobaczyć różnice w samych plikach.
Jest tutaj dobry samouczek dotyczący polecenia svn, który wyjaśnia wiele z tych typowych scenariuszy: Dokumentacja polecenia SVN
źródło
svn status
pokaże tylko lokalne modyfikacje. OP szukał, jak wyświetlić wszystkie zmiany w plikach, które zostały zatwierdzone w jego gałęzi od czasu jej utworzenia z linii głównej.Możesz użyć następującego polecenia:
Według svnbook :
With --quiet (-q), it prints only summary information about locally modified items.
OSTRZEŻENIE: Dane wyjściowe tego polecenia pokazują tylko Twoją modyfikację. Proponuję więc zrobić,
svn up
aby pobrać najnowszą wersję pliku, a następnie użyć,svn status -q
aby pobrać zmodyfikowane pliki.źródło
Spowoduje to wyświetlenie tylko zmodyfikowanych plików:
źródło
M
w nazwieOpcja -u wyświetli wraz z plikami obiektowymi, jeśli zostaną dodane podczas kompilacji.
Więc, aby to przezwyciężyć, możesz dodatkowo użyć w ten sposób.
źródło
źródło
svn log -q -v
pokazuje ścieżki i ukrywa komentarze. Wszystkie ścieżki są wcięte, więc możesz wyszukiwać wiersze zaczynające się od białych znaków. Następnie podłączcut
isort
posprzątaj:svn log --stop-on-copy -q -v | grep '^[[:space:]]'| cut -c6- | sort -u
Spowoduje to pobranie wszystkich ścieżek wymienionych w gałęzi od momentu jej rozgałęzienia. Zauważ, że wyświetli listę usuniętych i dodanych, a także zmodyfikowanych plików. Po prostu użyłem tego, aby pobrać rzeczy, o które powinienem się martwić, recenzując na nieco niechlujnej gałęzi od nowego dewelopera.
źródło