2012-03-24 3 views
2

세 개의 독립적 인 Bazaar 리포지토리가 있습니다. 그것들은 모두 하나의 프로젝트와 관련이 있지만 겹치는 파일은 없습니다.Bazaar에서 하나의 저장소에 리포지토리를 결합하는 방법은 무엇입니까?

서로 다른 하위 폴더 아래에서 하나의 저장소로 결합하고 기록을 유지하려고합니다.

이것이 가능합니까? 나는 저장소의 독립적 인 특성을 유지하기를 원하지 않는다. 그것은 한 번 작동 될 것입니다.

GIT에서이 작업을 수행 할 수있는 해결책이 있습니다. How do you merge two Git repositories?하지만 Bazaar와 비슷한 것을 찾을 수 없었습니다. 내가 시도 무엇

: 나는 저장소를 병합하려고했으나이 저장소에서 일반적인 경로가 파일 충돌이 발생할. 다른 하위 디렉토리에 병합 되길 원하지만 어떻게 될지 알 수 없습니다. 나는 주로 비 협업적인 방식으로 Bazaar를 사용합니다. 나는 merge 명령에 익숙하지 않다.

업데이트 : 내가 원하는 것을 정확히 수행하는 것을 목표로 한 a bzr plugin이 발견되었지만 버그가 있습니다.

+0

'bzr join' 명령을 사용해 보셨습니까? – dOxxx

+0

예, 시도했습니다. 그리고이 버그/기능을 누르십시오 : https://bugs.launchpad.net/bzr/+bug/370710 – HRJ

+0

"bzr join"을 실행하기 전에 업그레이드를 시도 했습니까? – jelmer

답변

4

merge -r0..-1 명령으로 수행 할 수 있습니다. 그러나 파일을 다른 하위 폴더에 저장하려면 병합하기 전에 파일을 저장하는 것이 좋습니다.

main 구성 요소와 두 개의 하위 구성 요소 인 foobar이 있다고 가정 해 보겠습니다.

ProjectRoot/ 
    main.txt  <-- any files from main component 
    ...    should be at the root of the project 
    ... 
    bar/   <-- bar subdirectory with files from bar component 
    foo/   <-- foo subdirectory with files from foo component 

우리는 mainfoobar을 병합합니다 : 당신은 당신의 새로운 결합 된 프로젝트는 다음과 같은 구조를 갖고 싶어. bar에 대한

cd /path/to/foo 
bzr mkdir foo 
bzr mv file1 file2 foo 
bzr commit -m "files moved into foo/ subdirectory" 

과 유사한 :하지만 먼저의 하위 디렉터리에 파일을 이동하자

cd /path/to/bar 
bzr mkdir bar 
bzr mv file3 file4 bar 
bzr commit -m "files moved into bar/ subdirectory" 

이제 우리는 main에 모든 것을 통합 할 준비가 :

cd /path/to/main 
# ensure the working tree does not have uncommitted changes 
bzr status 
# now merge foo 
bzr merge -r0..-1 /path/to/foo 
# if there is no conflicts then you can commit this part 
bzr status 
bzr commit -m "merged foo component" 
# now merge bar 
bzr merge -r0..-1 /path/to/bar 
# if there is no conflicts then you can commit this part 
bzr status 
bzr commit -m "merged bar component" 

그 후 mainfoobar이 병합되었습니다.

+0

감사합니다 @bialix하지만이 동일한 문제로 실행됩니다 : 다른 것으로 예상되는 프로젝트 파일 사이에 충돌이 발생합니다. 제 경우에는 마지막 병합에서만 일어나기 때문에 총알을 물고 마지막 저장소에 대한 커밋 기록을 포기할 수 있습니다. – HRJ

+0

@HRJ : bzr-fastimport 플러그인을 사용하여 세 번째 레포를 1.14 형식 (부유 한 루트가 아닌)으로 변환 한 다음 다시 병합 할 수 있습니다. – bialix

관련 문제