"svn update"명령을 실행하기 전에 저장소에서 업데이트되는 내용을 확인하는 방법은 무엇입니까?


115

Eclipse에서 SVN 저장소에 대한 수많은 파일의 변경 사항을 커밋했습니다.

그런 다음 저장소에서 해당 디렉토리로 이러한 변경 사항을 업데이트하려는 Linux 상자의 웹 사이트 디렉토리로 이동합니다.

"svn update project100"이라고 말하고 "project100"아래의 디렉토리를 모든 추가 및 변경된 파일 등으로 업데이트합니다.

그러나 내가하지 않은 변경 사항을 반드시 업데이트하고 싶지는 않습니다. 그래서 저는 "svn status project100"이라고 말할 수 있다고 생각했지만 이렇게하면 완전히 다른 변경 목록이 표시됩니다. 목록에 내 항목이 하나도 없습니다. 이상합니다.

따라서 내 변경 사항 만 웹 디렉토리에 업데이트되도록하려면 변경 사항이있는 모든 디렉토리로 이동하고 해당 파일 만 명시 적으로 업데이트해야합니다 (예 : "svn update newfile1.php"등). 지루합니다.

누구든지 여기에서 표준 작업 절차에 대해 설명 할 수 있습니까? 즉, "svn update"명령을 실행하기 전에 수행 될 모든 변경 사항의 정확한 목록을 어떻게 얻을 수 있습니까? "status"명령이라고 생각했습니다.

답변:


167

시험:

svn status --show-updates

또는 (동일하지만 더 짧음) :

svn status -u

9
또는 더 짧게 : svn st -u
Kenyakorn Ketsombut

출력에서 X 는 무엇을 의미합니까?
IgorGanapolsky 2016

1
또한 다음을 사용하십시오. svn status -q -u... 저장소에 속한 파일과 관련된 업데이트 변경 사항 및 로컬 변경 사항 만 표시합니다. 비 저장소 파일에서는 물음표 (?)가 표시되지 않습니다.
됩니다

56

로컬 작업 복사본을 업데이트하지 않고 작업 복사본과 최신 svn 서버 저장소간에 알고 싶은 내용에 따라 다음을 수행 할 수 있습니다.

svn 서버 저장소에서 변경된 사항을 알고 싶다면 다음 명령을 실행하십시오.

$ svn st -u

로컬 작업 복사본과 svn 서버 저장소 모두에서 동일한 파일이 수정되었는지 확인하려면 다음 명령을 실행하십시오.

$ svn st -u | grep -E '^M {7}\*'

특정 개정판과 HEAD 사이에 변경된 파일 목록을 얻으려면 다음 명령을 실행하십시오.

$ svn diff -r revisionNumber:HEAD --summarize

특정 개정판 사이에 변경된 파일 목록을 얻으려면 다음 명령을 실행하십시오.

$ svn diff -r revisionNumber:anotherRevisionNumber --summarize

실제로 업데이트하지 않고 업데이트 할 내용을 보려면 다음 명령을 실행하십시오.

$ svn merge --dry-run -r BASE:HEAD .

작업 복사본과 비교하여 svn 서버 저장소에서 특정 파일의 내용이 변경되었는지 알고 싶다면 다음 명령을 실행하십시오.

$ svn diff -r BASE:HEAD ./pathToYour/file

작업 복사본과 비교하여 svn 서버 저장소에서 모든 파일의 내용이 변경되었는지 알고 싶다면 다음 명령을 실행하십시오.

$ svn diff -r BASE:HEAD .

43

다음을 실행하여 실제로 업데이트하지 않고 업데이트 할 내용을 확인할 수 있습니다.

svn merge --dry-run -r BASE:HEAD .

자세한 내용은 여기를 참조 하세요 .


위 나를 위해 작동하지 않았다 실행했다svn merge --dry-run --revision BASE:HEAD .
Znarkus

3
; "첫 번째 업데이트 시도 : E195020 : 복사 [16061 16032]를 작업 혼합 개정판에 병합 할 수 없습니다 SVN은"얻기
휴 버트 Grzeskowiak

멋진 대답 - 혼합 개정 작업 사본 너무 나쁜이 작동하지 않음에 .. 그 날을 배울 것이다
제라드 오닐

2
@HubertGrzeskowiak-I love the irony q : how do I ... without doing an update?a : first, do an update, then ...:) :) :)
Jesse Chisholm

17

이것이 제가 찾던 것입니다. 먼저 Google을 확인했지만 svn help결국 나를 위해 왔습니다 :)

svn diff -r BASE:HEAD .

14

동일하지만 더 짧습니다. :) :

svn st -u

0

'svn diff'를 사용하여 작업 복사본과 저장소의 차이점을 확인할 수 있습니다.


9
잘못된. 여기에는 사용자와 마지막으로 저장소와 동기화 한 시간의 차이점 만 나열됩니다. 그 동안 다른 사람들이 저장소에 커밋 한 차이점은 표시되지 않습니다. OP는 변경 사항을 적용하지 않고 변경 사항을 알고 싶어합니다.svn update
dland

@Andrew는 OP가 'svn diff -r HEAD URL'을 실행하여 체크 아웃 된 파일과 저장소의 HEAD 또는 최상위 버전으로 체크인 된 파일의 차이점을 확인하도록 제안했습니다.
Mac

0

이론적으로는 자신의 용도로 만든 브랜치에서 모든 변경을 수행 할 수 있습니다. 그런 다음 당신은 그것에 헌신하는 유일한 사람이라는 것을 합리적으로 확신 할 것입니다.

IMHO 기능 개발은 이렇게해야합니다.

그런 다음 트렁크 대신이 분기에서이 대상 시스템을 업데이트 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.