2010-11-30 2 views
1

우분투 서버 10.04로 업그레이드했는데, 분산 된 vc 요구 사항에 사용했던 SVK가 제거되었습니다. 이전 프로젝트의 상당 부분이 여러 서버의 자체 호스팅 Subversion 저장소에 여전히 포장되어 있기 때문입니다. 이것은 내 다양한 ​​시스템 사이에 당분간 적절하게 작동하고있었습니다. 나는 새로운 프로젝트에서 이미 사용하고있는 Bazaar로 마이그레이션하기로 결정했다.예전 버전의 커밋되지 않은 변경 사항을 이전 서브 버전 작업 디렉토리에서 새로 가져온 바자 리포지토리로 병합하려면 어떻게해야합니까?

내가 SVN 가져 오기의 사용을 허용하는 BZR - svn을 플러그인을 설치 한

- 성공적으로 자신의 집합으로 가져온의/var/BZR /의 repos/여기서 모든 프로젝트의 저장소를 설정 (사용 자동 감지 된 trunk2 레이아웃). bzr 로그는 모든 프로젝트의 성공적인 임포트를 확인합니다.

불행하게도, 내 프로젝트 중 일부는 작업 폴더에 여러 커밋되지 않은 변경 사항이 - 내가 좋아하는 것이 중앙 은/var/BZR /의 repos/프로젝트 이름 저장소에 다시 remerge 할 수 있습니다. 나는 이들이 새로 수입 된 저장소의 최상위에 새로운 개정판이되기를 바란다.

어떻게해야합니까?

이 작업 폴더입니다 즉,의/var/www /에서 프로젝트 이름/htdocs에 - 일부는 개발 서버에, 일부는 (이미 시장 및 파괴가 설치되어있는)

내가 실행 시도 윈도우 노트북에있는 bzr init 및 bzr merge file : // var/bzr/repos/projectname/trunk - 이렇게하면 많은 충돌이 발생합니다. 양자 택일로 나는 시도했다 : bzr init; bzr add 및 bzr merge가 있습니다.

각각의 경우 병합에서 새로 생성 된 파일을 삭제하고 .moved 파일의 이름을 다시 바꾸고 커밋하려고 시도했습니다.이 경우 개정 번호가 1에서 시작하고 -301로 뒤로 이동하는 효과가 있습니다. 또 다른 결과는 로컬로 커밋 된 변경 사항을 "bzr push"하려고 할 때 로그 기록이 완전히 손실 된 것입니다. 다행스럽게도 원래의 Subversion 소스에서 매번 저장소를 재설정하고 다시 가져올 수있었습니다.

긴 경로는 새 폴더로/checkout을 분기하고 새로운 변경 사항을 diff/redo하는 것이지만 변경 내용을 기록하거나 kdiff 디렉토리 병합 작업을 실행하지 않는 것이 좋습니다.

원하는 결과는 수정 번호 및 로그를 유지하면서 중앙/var/bzr/repos/projectname 분기에 새 변경 사항을 적용하는 것입니다.

답변

0

내가 올바르게 이해한다면 : 다른 변경 사항 (mainline/main)을 기반으로하려는 지점에서 .bzr dir을 다른 변경 사항이있는 작업 디렉토리로 복사하십시오. 그런 다음 bzr 커밋을 수행하여 메인 라인/메인 브랜치로 밀어 넣을 수 있습니다. 커밋되지 않은 변경 사항이있는 각 작업 트리에 대해 반복하십시오.

+0

나는이 작업을 서버의 작업 복사본에서 시도했습니다. 그리고 이것은 꽤 잘 작동하는 것 같습니다. 랩톱에서 구현하는 것이 약간 까다 롭지 만, 아마도 메인 브랜치에 대한 SFTP 액세스가 가능하다면 가능할 것입니다. – Fai

0

bzr 저장소에서 커밋하지 않으면 svn 작업 폴더에서 커밋 (따라서 SVN 저장소에 변경 내용 적용)하고 bazaar로 svn-import 작업을 반복 할 수 있습니다. 누락 된 개정 만 추가합니다.

+0

svn (또는 오히려 svk) 저장소는 서버 업그레이드가 SVK를 제거 할 때 커밋을 허용 할 필수 메타 데이터를 가지고 있지 않습니다. 생각해 줘서 고마워. – Fai

+0

그런 다음 SVN 작업 트리에서 패치 파일을 만들고 "bzr patch"와 함께 bzr 분기에 적용 할 수 있습니다. – Federico

관련 문제