Odpowiedzi:
W systemie Linux, jeśli chcesz zobaczyć tylko konflikty, potokuj status przez grep.
svn status | grep -P '^(?=.{0,6}C)'
'^.{0,6}C'
działać?
(svn status) -Match '^(?=.{0,6}C)'
Po prostu użyj grep!
svn st | grep '^C'
Jeśli masz potwierdzenie ze strony http://betterthangrep.com/ , możesz wykonać następujące czynności
svn st | ack '^C'
Jeśli już połączyłeś się, możesz użyć
svn status
i zobacz duże „C” dla konfliktu, ale zwykle nie powinieneś widzieć takiego rodzaju w kopii roboczej.
Może być możliwe użycie svn merge --dryrun
podczas określania adresu URL repozytorium ze wszystkimi wersjami po ostatniej, którą zaktualizowałeś.
Np. Jeśli twój obecny WC jest oparty na wersji 147, może to zrobić:
svn merge -r 148:HEAD http://url.to.repo/repo/
To nic, co sam zrobiłem, więc musisz spróbować sam.
Jeśli nie scaliłeś ani nie zaktualizowałeś plików, użyj poniższego polecenia
svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'
Krótko mówiąc
svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'
Szczegóły
SVN nie zaznacza statusu konfliktu (C), dopóki nie zaktualizujesz pliku (ów) za pomocą svn update
.
Do tego czasu statusy są pokazane jak poniżej
+---+------+---------------+---------------+
| M | | | 23246 file1 |
+---+------+---------------+---------------+
| | | * | 23233 file2 |
+---+------+---------------+---------------+
| M | * | 23233 file3 | |
+---+------+---------------+---------------+
M - Zmodyfikowane w lokalnym
* - Aktualizacje / Przychodzące ze zdalnego
M i * - Zmodyfikowane zarówno w lokalnym, jak i zdalnym - Jest to konflikt, ale svn jeszcze nie zaznaczył
na mac
$ svn status | grep -e '^!'
wykonał pracę
oto człowiek dla grepa:
użycie: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C [numer]] [-e wzór] [-f plik] [--binary-files = wartość] [--color = kiedy] [--context [= num]] [--directories = action] [--label] [--line-buffered] [--null] [wzorzec] [plik ...]
^!
to wyrażenie regularne dla każdej linii zaczynającej się od !
. Wszystkie sprzeczne linie zaczynają się od!
-A 1
do argumentów grep spowoduje wyświetlenie linii po linii konfliktu, która czasami jest związana z konfliktem.