program story

두 개의 Subversion 저장소를 동기화하는 방법은 무엇입니까?

inputbox 2020. 12. 25. 09:44
반응형

두 개의 Subversion 저장소를 동기화하는 방법은 무엇입니까?


우리 회사에는 인터넷 연결 속도가 느린 자회사가 있습니다. 우리 개발자는 중앙 Subversion 서버 와 상호 작용하는 데 어려움을 겪습니다 . 슬레이브 / 미러를 구성 할 수 있습니까? 그들은 로컬로 서버와 상호 작용하고 모든 커밋은 자동으로 마스터 서버에 동기화됩니다.

이것은 개발자에게 가능한 한 투명하게 작동해야합니다. 사용성은 필수입니다.

버전 관리 시스템을 변경하라는 제안은 없습니다.


Subversion 1.5는 http를 사용하여 저장소를 호스팅 할 때 프록시 지원을 도입했습니다. 개발자는 슬레이브에서 작업 복사본을 체크 아웃 할 수 있습니다. 그러면 모든 읽기 전용 작업 (diff, log, update 등)이 슬레이브를 사용합니다. 커밋 할 때 슬레이브는 모든 쓰기 작업을 마스터에 투명하게 전달합니다.


가능하지만 반드시 간단하지는 않습니다. 해결하려는 문제는 SVN이 정확히 설계된 것이 아닌 분산 개발 환경을 설정하는 것과 매우 가깝습니다.

SVN 미러 방식

svn mirrorSVN 책 문서에 설명 된대로 사용 하여 마스터 저장소의 읽기 전용 미러 를 만들 수 있습니다 . 개발자는 각자 가장 가까운 미러와 상호 작용합니다. 그러나 슬레이브 저장소의 사용자는

svn 스위치-master_url 재배치

그들이 커밋하기 전에 그들은 일단 그들이 완료되면 노예로 다시 재배치하는 것을 기억해야 할 것입니다. 명령 줄 클라이언트를 사용하는 경우 SVN에서 명령을 수정하는 저장소 주변의 래퍼 스크립트를 사용하여 자동화 할 수 있습니다. 빠른 재배치 작업은 약간의 오버 헤드를 추가합니다. (그리고 저장소 uuid를 복제하도록주의하십시오 . SVN 문서를 참조하십시오 .)

[편집 -TortoiseSVN 문서를 확인하면 TortoiseSVN이 클라이언트 측 후크 스크립트를 실행하도록 할 수있는 것 같습니다 . 이 시점에서 커밋 전 / 후 스크립트를 생성 할 수 있습니다. 또는 TortoiseSVN 자동화 인터페이스사용하여 수행 할 수 있는지 확인하십시오 ].

SVK 방식

svk 는 SVN을 통해 분산 미러링 서비스를 에뮬레이트하는 Perl 스크립트 세트입니다. 여러 개발자가 로컬 브랜치 (미러)를 공유하도록 설정할 수 있습니다. 그러면 개발자의 기본 사용법이 완전히 투명 해집니다. 체리 따기, 병합 및 스타 머징을 위해 svk 클라이언트를 사용해야합니다. 분산 된 개념에 대해 머리를 숙일 수 있다면 가능합니다.

git-svn 방식

내가 직접 사용한 적이 없지만 먼 개발자가 로컬에서 git을 사용하고 동기화를 위해 git-svn 게이트웨이를 사용하도록 할 수도 있습니다 .

마지막 단어

이는 모두 개발 환경과 필요한 통합 수준에 따라 다릅니다. IDE에 따라 (그리고 SCM 을 변경할 수있는 경우 ) 즉시 분산 개발을 지원하는 다른 완전 분산 SCM (예 : Mercurial / Bazaar / Git / ...)을 살펴볼 수 있습니다 .


당신은 SVK 버전 관리 시스템을 시도해야 합니다

SVK 는 강력한 Subversion 파일 시스템으로 구축 된 분산 버전 제어 시스템입니다. 리포지토리 미러링, 연결 해제 된 작업, 기록에 민감한 병합을 지원하고 다른 버전 제어 시스템 및 인기있는 시각적 병합 도구와 통합됩니다.

이 링크에는 SVK를 사용하여 SVN 저장소 동기화 에 대한 텍스트가 있습니다.


저장소 중 하나가 완전히 읽기 전용 인 경우 'svnsync'를 사용하여 마스터 저장소로 최신 상태로 유지할 수 있습니다. 이 도구는 종종 마스터 슬레이브 설정을 생성하기 위해 프록시 지원과 함께 사용됩니다.

예를 들어 Apache는 저장소를 다른 대륙에 미러링하기 위해 이렇게합니다. 마스터 repostitory는 미국에 있지만 EU에서 저장소에 액세스하면 마스터 서버와 마찬가지로 작동하는 로컬 미러를 얻습니다.


inotify-tools는 저에게 잘 작동하며 자세한 내용은이 웹 사이트에 언급되어 있습니다.

http://planet.admon.org/synchronize-subversion-repositories-with-inotify-tools/


svnsync가 제공하는 "Subversion MultiSite"이상의 성능과 데이터 안전성이 필요한 경우 Subversion 저장소의 진정한 활성-활성 복제 (마스터-슬레이브 아님)를 제공하는 상용 솔루션이 있습니다.

면책 조항 : 저는이 솔루션을 만드는 회사에서 일합니다.


VisualSVN Server의 Multisite Repository Replication 은이 경우를 위해 설계되었습니다.

마스터 리포지토리를 본사에 유지하고 원격 위치에 쓰기 가능한 여러 슬레이브 리포지토리를 설정할 수 있습니다.

이것은 개발자에게 가능한 한 투명하게 작동해야합니다. 사용성은 필수입니다.

  • 슬레이브와 마스터 간의 복제는 투명하고 자동입니다.

  • 각 마스터 및 슬레이브 저장소는 사용자의 관점에서 쓰기 가능한 Subversion 저장소입니다.

  • 기본적으로 작동하며 VisualSVN Server Manager MMC 콘솔을 통해 몇 번의 클릭으로 구성 할 수 있습니다.

VisualSVNServerManagerConsoleMultisite

참조 URL : https://stackoverflow.com/questions/143130/how-to-synchronize-two-subversion-repositories

반응형