2011-09-14 3 views
3

Subversion을 사용하고 매우 오랜 역사가있는 프로젝트 작업에 Bazaar를 사용하고 싶습니다. 예 : svn://svn.freebsd.org/base/head.전체 히스토리를 가져 오지 않고 Bazaar로 Subversion 저장소 미러링 하시겠습니까?

SVN 저장소 작업에 사용할 수있는 좋은 플러그인 bzr-svn이 있습니다. 관련 워크 플로의 몇 가지 예가 here입니다.

내 문제는 내가 찾은 모든 것이 SVN에서 전체 기록을 가져 오려고한다는 가정하에 작성된 것 같습니다. 나는 그것을하고 싶지 않다. 디스크 공간이 너무 많이 필요합니다. 실제로 시도하면 가져 오기에 메모리가 부족합니다. 난 정말 어떤 SVN revno/태그 전에 어떤 변경에 대해 상관 없어. 그러나 나는 바자쪽에 제대로 나타나기 위해 각 개인이 커밋 시점 이후 커밋되기를 원한다. 어떻게해야합니까?

는 기본적으로 내가 (있는 내 지역 지점을 만들 수 있습니다) 내 공급 업체 지점에 대한 다음과 같은 논리를 원하는 : 분명히

svn co svn://svn.freebsd.org/base/head -r CUTOFF_REVNO 

while true 
do 
    svn up -r NEXT # note: NEXT is not possible even though there is PREV 
    bzr commit 
    sleep N 
done 

위는 IS 바자의 메시지 및 기타 물건을 커밋 저장하지 않습니다 문제. 이 일을 매일 svn up의 cron 작업으로 만들 수 있으며, 하루 내에 모든 SVN 변경 사항을 Bazaar 브랜치에 하나의 일일 커밋으로 커밋합니다.

메타 데이터와 개별 커밋이 Bazaar (SVN 측에서 발생하는 것과 동일한 세분성)로 올바르게 변환되도록하려면 어떻게해야합니까? 나는 SVN에 참여할 필요가 없다. 필요한 것은 단방향 솔루션입니다. 나는 이것을 할 수있는 어딘가에 도구가 있기를 바랍니다!

답변

2

나는 잠재적 인 해결책을 찾은 것 같아서 스스로 대답하고 있습니다.

정확하게 이것을 할 수있는 Tailor이라는 도구가 있습니다. 이것은 일반적인 솔루션이기 때문에 CVS, SVN, Bazaar, Mercurial, Git, Darcs 및 일부 다른 사람들과 같이 가장 널리 사용되는 버전 제어 시스템에서 작동합니다.

내가 예를 freebsd-tailor.conf를 들어, 다음과 같은 구성 파일이 필요 무엇을 요구 달성하기 :

다음
[DEFAULT] 
verbose = True 
projects = freebsd-current 

[freebsd-current] 
root-directory = /home/tailor/freebsd-current 
subdir = upstream 
source = svn:freebsd-current 
target = bzr:freebsd-current 
start-revision = 225424 

[svn:freebsd-current] 
repository = svn://svn.freebsd.org/base 
module = /head 
encoding = iso-8859-1 

[bzr:freebsd-current] 

난 그냥 revno 225,424에서 초기 동기화를 할 tailor -c freebsd-tailor.conf을 실행하고 명령을 내가 원하는 때마다 다시 실행 그 후에 새로운 변경 사항을 점진적으로 가져옵니다.

현재이 문제를 테스트 중입니다. 성공 또는 실패로 답변을 업데이트하겠습니다. 다른 해결책은 여전히 ​​환영받습니다. :)

UPDATE :

나는 조금 더 간단한 구성 예를 만들어 많은 프로젝트에 필요한 것 같다 encoding 항목을 추가했다.

지금까지 테스트 한 결과 테일러은 불행히도 내 프로젝트와 같이 큰 프로젝트에서는 그리 강력하지 않습니다. 하나의 하위 디렉토리가 내 bzr 저장소에서 어떤 이유로 빠져 있으며 맞춤 설정으로 업데이트를 가져 오는 것은 매우 느리며 많은 리소스가 필요합니다. 어쩌면 작은 프로젝트에서도 잘 작동 할 것입니다. 나는 재단사가 다른 VCSes에 너무 많은 백엔드를 갖고 있으며 그 차이점에 대해 중립적 인 방법을 좋아합니다.

관련 문제