Subversion : 들어오는 변경 사항의 차이점을 비교하는 방법은 무엇입니까?


19

들어오는 변경 사항을 수락하기 전에 동료가 변경 한 내용을보고 싶습니다.

그래서 나는 상태를 얻는 것으로 시작합니다

svn st -u

... 수신 변경 사항이 있음을 알려줍니다.

    *     9803   incomingChanges.html
M         9803   localChanges.html
M   *     9803   localAndIncoming.html

내가 바꾼 것을 볼 수 있습니다

svn diff localChanges.html

... 그러나 localAndIncoming.html변경된 내용과 작업 사본과 다른 점을 어떻게 보여줄 수 있습니까?


커맨드 라인 질문에 대한 대답은 아니지만, 결국 작업 복사본과 다른 것이 무엇인지 알게 되면 저장소 변경 사항을 자신의 변경 사항과 병합 할 수 있습니다. GUI를 사용하여 그렇게 할 때 GUI를 사용하여 초기 차이점을 수행하는 데 도움이되지 않는 이유는 무엇입니까? TortoiseSVN과 같은 도구는 이러한 비교를 제공합니다. - 또한, 이클립스 등의 IDE가 (당신의 동료까지왔다 무엇의 아이디어를 얻을 수있는 좋은 병합에 아무것도 없다하더라도) 수신 변경을 검토 할 수 있습니다 매우 쉽게 자동 병합을 피할 수는.
Arjan

1
TortoiseSVN을 사용하여 들어오는 변경 사항을 보는 GUI 방법이 있습니까?
Christian

inputChanges.html도 다른 방법으로 비교하고 싶습니까?
Raffi Khatchadourian

답변:



2

FYI svn diff.svn라이브 리포지토리 버전이 아닌 디렉토리에 저장된 수정되지 않은 파일을 기반으로 diff를 제공합니다 .

svn updatesubversion을 사용하여 업데이트를 시도하고 병합 할 수는 있지만 실행할 수는 svn diff있지만 원하는대로 깨끗하지는 않습니다.

마지막으로 svn diffrepo에서의 diffing을 지원합니다. 예:

svn diff svn://svnserver/repo/localChanges.html -r REV_NO

HEAD와 전달 된 개정판을 비교하는 기본값입니다.


2

TortoiseSVN을 (Windows를 사용하는 경우)

  • 로그 화면을 불러옵니다

  • 헤드 리비전 선택

  • localAndIncoming.html을 마우스 오른쪽 버튼으로 클릭하십시오.

  • 작업 사본과 비교를 선택하십시오.


0

실제로 새 버전을 다운로드 할 때까지는 실제로 할 수 없습니다. 이와 같은 제한은 최근 새로운 유형의 소스 제어가 대중화되는 큰 이유 중 하나였습니다. 이를 분산 소스 제어라고합니다.
이 새로운 양식을 사용하면 자체 로컬 리포지토리가 있으며 기본 리포지토리에서 변경 사항을 가져 와서 diff를 실행할 수 있습니다. 변경 사항이 마음에 들지 않으면 자체 리포지토리를 되돌릴 수 있습니다.

http://mercurial.selenic.com/

그리고 그래, 나는 당신이 제품을 전환하는 것이 최적의 해결책은 아니라고 제안하지만 그것은 결코 해결책이 아닙니다.


0

새 폴더에서 다른 체크 아웃을 수행하십시오.

cd ..
svn checkout  /path/to/repo clean_working_copy

clean_working_copy를 재사용하는 경우 전에 업데이트하는 것을 잊지 마십시오

svn update clean_working_copy

그런 다음 파일을 clean_working_copy의 파일과 비교하십시오.

diff your_working_copy/localAndIncoming.html clean_working_copy/localAndIncoming.html

또는 선호하는 3-way diff (광산은 kdiff3)

kdiff3 --L1 Base --L2 theirs --L3 mine your_working_copy/.svn/text-base/localAndIncoming.html clean_working_copy/localAndIncoming.html your_working_copy/localAndIncoming.html

이 작업은 scm이 더 통합 된 방법을 제공해야합니다.
rds

0

나는 생각한다

svn diff -r HEAD

거의 원하는 것을 제공합니다. 유일한 것은 +와-가 당신이 기대하는 것에 비해 반대로된다는 것입니다.

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