Subversion을 사용하여 두 가지 수정 버전 병합


95

http : // url-of-branch-a의 rev 10과 HEAD rev 사이에 발생한 모든 변경 사항을 병합 하고 http : // url-of-branch-b에 적용 하고 싶습니다 .

뭔가 ...

svn merge -r 10:HEAD http://url-of-branch-a 

이게 가능해? 그렇다면 구문은 무엇입니까?

유닉스 명령 줄에서 SVN 클라이언트를 실행하고 있습니다. SVN 클라이언트 버전은 1.4입니다.

편집 : 예, 내 특정 솔루션은 ...

  1. 변경 사항을 수신 할 작업 사본의 위치로 디렉토리를 변경하십시오 (branch-b).
  2. svn merge -r 10 : HEAD http : // url-of-branch-a

이것은 'branch-a'의 변경 사항을 'branch-b'로 병합합니다.


4
지점이 언제 인수되었는지도 알아야합니다. 브랜치에서이를 수행 (svn log --stop-on-copy.)하여 브랜치 한 개정 번호를 얻을 수 있습니다.
jmc 2012-06-15

@jmc SVN 1.5가 출시 된 2008 년 이후로 더 이상 필요하지 않습니다. AFAIR
bahrep

답변:


55

Checkout URL A. SVN 병합을 사용하여 URL B를 A의 작업 복사본에 병합합니다. 커밋 A.

물론 그 반대도 마찬가지입니다. :)


127

과정은 다음과 같습니다.

  1. 지점 B ( svn checkout http://branch-b) 의 작업 복사본을 설정합니다.
  2. 분기 A의 변경 사항을 B의 작업 복사본으로 병합 ( svn merge -r 10:HEAD http://branch-a .)
  3. 작업 복사본 B를 분기 b ( svn commit)에 커밋 (충돌 해결 후 )

svn merge 의미론에 대해서는 man 페이지 (도움말 파일)를 확인하십시오. svn merge가 항상 결과를 작업 복사본으로 덤프한다는 것을 보여줍니다.

자세한 내용 은 SVNBook 을 확인 하십시오.


이클립스에서 SVN 플러그인을 사용하여 수행하는 방법에 대한 아이디어를 줄 수 있습니까?
Snehal Masne 2015 년

나를 위해이 작품 : --force --allow-혼합 개정 10 -r SVN 병합 : HEAD의 지점-A
호치민 응웬

2
HEAD에 개정 10을 지정하는 이유는 무엇입니까? 스냅 샷으로 사용할 하나의 개정 대신 두 개의 개정 끝점을 사용하는 이유는 무엇입니까? "10 to HEAD"는 어떤 분기를 참조합니까?
ahnbizcad

2

mergesvn repo에서하려고하면 대부분 혼란 스럽습니다. svn repo에 직접 병합 할 수 없으며 다음과 같이 로컬 머신의 작업 복사본에 병합 할 수 있습니다.

  • 이 작업 복사본은 destination URL병합 (예 : 체크 아웃 대상) 이어야합니다 .

  • 작업 복사본 source URL을 병합 과 병합합니다.

  • commit 목적지까지.

모범 사례 : Merge In, Merge Out.

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