TortoiseSVN을 사용하여 트렁크에서 분기로 또는 그 반대로 변경 사항을 어떻게 병합합니까?
Subversion을 사용하여 훌륭하고 무료로 제공되는 Version Control 책을 사용하여 Subversion 1.5와의 분기 / 병합에 대해 읽었습니다 . Subversion 명령 줄 클라이언트를 사용하여 가장 필요한 작업을 수행하는 방법을 이해하고 있다고 생각합니다.
트렁크의 변경 사항으로 분기 업데이트
지점의 작업 디렉토리에서 다음을 실행하십시오.
트렁크로 분기 병합
트렁크의 작업 디렉토리에서 다음을 실행하십시오.
svn merge-재 통합 http://svn.myurl.com/proj/branches/mybranch
그러나 우리는 Subversion의 인터페이스로 TortoiseSVN 1.5를 사용하고 있습니다. TortoiseSVN으로 이러한 작업을 수행하는 가장 좋은 방법을 알고 싶습니다. 새 대화 상자는 기본 메뉴에서 세 가지 옵션을 제공합니다.
- 다양한 버전의 병합
- 지점 재 통합
- 두 개의 다른 나무를 병합
내가 수집 할 수있는 것에서 TortoiseSVN은 항상 다음 구문으로 svn을 실행합니다.
svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH
또한 일부 대상이 병합되지 않아 계속 진행할 수 없다는 메시지와 함께 지점 재 통합이 실패하는 경우가 많으므로 옵션 # 3을 사용해야했습니다.
내 질문은 :
- TortoiseSVN 1.5를 사용하여 트렁크에서 분기로 변경 사항을 병합하려면 어떻게해야합니까?
- TortoiseSVN 1.5를 사용하여 재 통합 방법을 사용하거나 사용하지 않고 분기를 트렁크에 병합하려면 어떻게해야합니까?
- 위의 옵션 중 어떤 옵션을 사용해야합니까? 그 이유는 무엇입니까?
편집하다
"드라 이런"테스트를 통해 명령 행 Subversion 작업을 찾았습니다.
개정 범위를 비워 두는 한 TortoiseSVN의 옵션 # 1 (개정 범위 병합)과 유사합니다.
동작은 리포지토리의 버전에 따라 다릅니다. Subversion 1.5에서는 4 가지 유형의 병합이 가능합니다.
- sourceURL1 병합 [@N] sourceURL2 [@M] [WCPATH]
- sourceWCPATH1 @ N 병합 sourceWCPATH2 @ M [WCPATH]
- 병합 [-c M [, N ...] | -r N : M ...] 소스 [@REV] [WCPATH]
- 병합-소스 재 통합 [@REV] [WCPATH]
1.5 이전의 Subversion은 처음 2 개의 형식 만 허용했습니다.
기술적으로 처음 두 가지 방법으로 모든 병합을 수행 할 수 있지만 마지막 두 가지는 subversion 1.5의 병합 추적을 활성화합니다.
TortoiseSVN의 옵션은 저장소가 1.5 이상인 경우 방법 3에, 또는 저장소가 오래된 경우 방법 1에 범위 또는 개정 맵을 병합합니다.
기능을 릴리스 / 유지 보수 브랜치로 병합 할 때는 '다양한 버전의 병합'명령을 사용해야합니다.
브랜치의 모든 기능을 상위 브랜치 (일반적으로 트렁크)로 다시 병합하려는 경우에만 '브랜치 재 통합'을 사용해야합니다.
그리고 마지막 명령-두 개의 다른 나무 병합-은 정상적인 분기 동작을 벗어나려고 할 때만 유용합니다. (예 : 다른 릴리스를 비교 한 다음 다른 분기를 다른 분기에 병합)
다른 답변을 제대로 따를 수 없었습니다. 여기에 더 많은 인형 안내서가 있습니다 ...
당신은 갈 길 내내이 작업을 수행 할 수 있습니다 trunk -> branch
또는 branch -> trunk
. 난 항상 먼저 trunk -> branch
거기에 충돌을 해결하고 병합 branch -> trunk
합니다.
트렁크를 지점 / 태그에 병합
- 지점 / 태그 확인
- 지점의 루트를 마우스 오른쪽 버튼으로 클릭 | 거북이 SVN | 병합 ...
- 병합 유형 : 수정 버전 범위 병합 | '다음'을 클릭하십시오
- 수정 버전 병합 : 분기 / 태그에 복사 한 트렁크 디렉토리의 URL을 선택하십시오. 병합 할 개정을 입력하거나 모든 개정을 병합하려면 필드를 비워 두십시오. '다음'을 클릭하십시오
- 병합 옵션 : 나는 이것을 기본값으로 남겨 두었습니다. '병합'을 클릭하십시오
- 이것은 개정을 체크 아웃 된 브랜치 / 태그에 병합합니다
- 그런 다음 병합 된 변경 사항을 브랜치 / 태그에 커밋하십시오.
"수정 범위 병합"을 사용해야합니다.
To merge changes from the trunk to a branch, inside the branch working copy choose "merge range of revisions" and enter the trunk URL and the start and end revisions to merge.
The same in the opposite way to merge a branch in the trunk.
About the --reintegrate flag, check the manual here: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate
Take a look at svnmerge.py. It's command-line, can't be invoked by TortoiseSVN, but it's more powerful. From the FAQ:
기존의 Subversion을 사용하면 변경 사항을 병합 할 수 있지만 이미 병합 한 내용을 "기억"하지는 않습니다. 또한 변경 집합이 병합되지 않도록 편리한 방법을 제공하지 않습니다. svnmerge.py는 일부 작업을 자동화하고 단순화합니다. Svnmerge는 또한 병합 된 모든 것의 로그 메시지와 함께 커밋 메시지를 생성합니다.
Shift- 오른쪽 폴더를 클릭하고 TortoiseSVN-> 모두 병합을 선택하십시오.
'IT' 카테고리의 다른 글
ListView에서 단일 행을 어떻게 업데이트합니까? (0) | 2020.07.01 |
---|---|
Numpy에서 벡터의 크기를 어떻게 얻습니까? (0) | 2020.07.01 |
모든 비트를 true로 설정하기 위해 -1을 사용하는 것이 안전합니까? (0) | 2020.07.01 |
메소드의 Java 변수 번호 또는 인수 (0) | 2020.07.01 |
Eclipse가 "JNI 공유 라이브러리를로드하지 못했습니다"라고보고 함 (0) | 2020.07.01 |