2011-07-05 8 views
2

동일한 프로젝트의 두 가지로 작업합니다. 둘 다 몇 달 전에 저에게 창조되었습니다. 나는이 프로젝트의 유일한 개발자이다. 오랫동안 방치 한 후에이 프로젝트로 돌아갑니다.두 bzr 가지를 올바르게 병합하는 방법은 무엇입니까?

원래의 의도는 (내가 2 년 전에 내 마음에 있었던 것을 기억할 때까지) 작업 트리가없는 단일 (공유 된) 저장소를 가지며 주요 트렁크 분기뿐만 아니라 몇 가지 실험적인 것들을 가지고 있었다. 필요한). 나는 두 개의 가지로 끝났습니다. 첫 번째 것은 "생산 지점"이고 두 번째 것은 실험적인 기능을 시험하기 위해 만들어졌습니다. 다음 두 가지 내부 발행 bzr info의 출력은 다음과 같습니다

지점 1

C:\My\Proj\path\qwerty>bzr info 
Lightweight checkout (format: 2a) 
Location: 
    light checkout root: . 
    checkout of branch: C:/My/Proj/path/qwertyBazaarRepo/trunk 
    shared repository: C:/My/Proj/path/qwertyBazaarRepo 

Related branches: 
    parent branch: . 
    submit branch: C:/My/Proj/path/ExperimentalQwerty 

C:\My\Proj\path\qwerty> 

지점이

C:\My\Proj\path\ExperimentalQwerty>bzr info 
Standalone tree (format: 2a) 
Location: 
    branch root: . 

Related branches: 
    parent branch: C:/My/Proj/path/qwertyBazaarRepo/trunk 
    submit branch: C:/My/Proj/path/qwertyBazaarRepo/trunk 
나는 (두 가지의 여러 파일을 병합하려는

그 때문에 이 두 가지와 이후의 모든 지점에서 동일하게 됨). 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

P. 실제로 kdiff3를 사용하고자하는 변경/병합을 시각적으로 검사하기 위해

답변

3

실제로 첫 번째 위치는 지점 C:/My/Proj/path/qwertyBazaarRepo/trunk의 경량 체크 아웃이며 실제로 공유 저장소를 사용합니다. 두 번째 위치는 독립 실행 형 분기입니다.

2 개 분기의 내역을 비교하려면 bzr missing path/to/other/branch 명령이나 bzr qlog path/to/branch1 path/to/branch2 명령을 사용하십시오.

당신은 역사를 병합하고 싶지 않아,하지만 변화는 다음 중 하나가 바로이 나무에 수동으로 변경 내용을 병합 kdiff3 사용하거나 개별 파일을 병합 할 bzr merge path/to/file 명령을 사용하여, (트렁크 분기에서 1 merge을 실행할 수있는 경우 위치).

은 각 병합 후 확인하지 않고 bzr merge FILE 여러 번 실행할 수 있습니다, 여러 파일에서 변경 내용을 병합하는 것이 아니라 모든 후속 병합을 위해 당신은 --force 명령 줄 옵션, 즉 bzr merge --force FILE를 사용해야합니다.

또한 병합 후에 bzr shelve을 사용하여 원치 않는 변경 사항을 제거 할 수 있습니다.

+0

감사합니다. 이것은 정말로 도움이되었습니다. –

+0

빠른 질문이 있습니다. 실험 브랜치를 트렁크에 병합 한 실험 브랜치를 트렁크와 어떻게 동기화합니까? 간단한 재 분기로? 아니면 더 좋은 방법이 있습니까? –

+1

@bgbg : 원하는 경우 트렁크를 실험실로 다시 병합 할 수 있습니다. 대개 실험 브랜치의 수명이 끝나면 트렁크 (필요할 경우)에서 병합 한 다음 삭제 (또는 특수한 림보 디렉토리로 이동, _MERGED /라고 부른다. 때때로 _MERGED의 브랜치를 삭제한다). – bialix

관련 문제