SVN 충돌을 나열하는 명령이 있습니까?


116

누구든지 저장소와 작업 복사본 사이의 현재 충돌을 나열하는 SVN 명령을 알고 있습니까?

감사

답변:


168

Linux에서 충돌 만 보려면 grep을 통해 상태를 파이프하십시오.

svn status | grep -P '^(?=.{0,6}C)'

6
-A 1grep 인수에 추가 하면 충돌 줄 뒤의 줄이 표시되며 충돌과 관련된 경우도 있습니다.
Wesley Hartford

4
-P는 grep 에게 perl 정규식을 사용하도록 지시합니다 . ^ = 문자열의 시작, (? =) 는. {0,6} 0에서 6 자 사이 의 미리보기 패턴과 충돌을 나타내는 문자 C를 묶습니다 .
Pete

5
미리보기 부분을 사용하는 이유는 무엇입니까? 잘 '^.{0,6}C'작동 하지 않습니까?
hans_meine 2014-08-25

2
OSX에서 동일한 명령을 사용하려면 BSD grep에 perl regex 플래그 (-P)가 없기 때문에 GNU grep을 설치해야합니다
G.Rassovsky

4
Windows에서 Powershell 버전은(svn status) -Match '^(?=.{0,6}C)'
bstoney

28

grep을 사용하십시오!

svn st | grep '^C'

2
@sid, '시작'에 대한 정규 표현식이므로 첫 번째 문자가 C임을 의미합니다.
Joseph Lust 2013 년

1
나는 이것이 "A + C"상태를 가진 파일을 놓칠 수 있다고 생각하고 있었다 .. 그게 문제인가 ..
Raghav

2
egrep '^ [AC +] +'가 트릭을 수행하지만 일반적으로 A + C 문제는 없습니다.
Joseph Lust 2013 년

1
명심하기 쉽고 대부분의 경우에 충분합니다. @JosephLust에게 감사드립니다.
csonuryilmaz

11

당신은 시도 할 수 svn merge -r <revision> --dry-run및 그 방법을 어떻게되는지.


svn 1.7.8을 사용하는 Windows에서 작동하지 않는 것 같습니다. 오류 로그 : svn : E205001 : 자세한 정보는 'svn help'시도 svn : E205001 : Merge source required
kakyo


4

Windows PowerShell의 경우 다음을 사용합니다.

svn status | sls -Pattern '^(?=.{0,6}C)'

3

이미 병합 한 경우 사용할 수 있습니다.

svn status

충돌의 경우 대문자 "C"가 표시되지만 일반적으로 작업 사본에는 이러한 종류가 표시되지 않아야합니다.


1

사용할 수 있습니다 svn merge --dryrun업데이트 한 최신 버전 이후의 모든 버전과 함께 저장소 URL을 지정하는 동안 .

예를 들어 현재 WC가 개정 147을 기반으로하는 경우 다음과 같이 할 수 있습니다.

svn merge -r 148:HEAD http://url.to.repo/repo/

내가 직접 한 것은 아니므로 직접 시도해야합니다.


0

파일을 병합하거나 업데이트하지 않은 경우 아래 명령을 사용하십시오.

svn status --show-updates | grep -P '.*(?=.*M)(?=.*\*).*'

짧게

svn st -u | grep -P '.*(?=.*M)(?=.*\*).*'

세부 정보
SVN은를 사용하여 파일을 업데이트 할 때까지 충돌 (C) 상태를 표시하지 않습니다 svn update.
그때까지 상태는 아래와 같이 표시됩니다.

+---+------+---------------+---------------+
| M |      |               | 23246   file1 |
+---+------+---------------+---------------+
|   |      | *             | 23233   file2 |
+---+------+---------------+---------------+
| M |    * | 23233   file3 |               |
+---+------+---------------+---------------+

M-로컬에서 수정 됨
*-원격
M 및 * 에서 업데이트 / 수신 됨- 로컬 및 원격에서 수정 됨- 충돌이지만 svn은 아직 표시하지 않았습니다.


-2

Mac에서

$ svn status | grep -e '^!'

일을했다

다음은 grep의 남자입니다.

사용법 : grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C [num]] [-e pattern] [-f file] [--binary-files = value] [--color = when] [--context [= num]] [--directories = action] [--label] [--line-buffered] [--null] [pattern] [file ...]


느낌표를 일치 시키면 충돌하는 항목을 찾는 데 어떻게 도움이됩니까?
anddam

^!로 시작하는 모든 줄의 정규식입니다 !. 충돌하는 모든 라인은 다음으로 시작합니다!
thesummersign

2
아니요, 방금 1.9 리포지토리에서 충돌을 해결했고 충돌 줄이 "C"로 시작했습니다.
anddam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.