2008-10-06 7 views
4

그래서이 특정 SVN Repo를 사용하여 특정 프로젝트에서 내 dev 작업을 사용하고 있으며 SVN repo 설치를 고객 미디어 사원 계정에 설치하여보다 안전한 백업을 제공합니다.SVN Repo를 로컬에서 서버로 동기화 하시겠습니까?

내 랩톱에서 모든 개발 작업을 수행하므로 인터넷 연결이 항상 필요하지 않습니다 (따라서 로컬 SVN). 내 로컬 저장소에 변경 사항을 적용하는 쉬운 방법이 있는지 궁금합니다. 서버 저장소에?

답변

3

리포지토리 간 버전은 svn merge 일 것입니다.

할 수있는 방법에 대한 유용한 자습서가 있습니다. 그 주제

1

SVN 병합 만하면됩니다.

3

나는 그것이 스트레칭 알고 있지만, 중앙 집중식 버전 관리 시스템 (하나이기 때문에 무엇을 당신이 시도하고하는 것은 반드시, 서브 버전에 적합하지 않습니다에 대한 좋은 소개를위한 http://blog.red-bean.com/sussman/?p=92 또는 http://subversion.tigris.org/faq.html#multi-merge 봐주세요 저장소의 마스터 사본).

Git은 오프라인 커밋, diff 및 병합을 수행 할 수있는 분산 버전 관리 시스템입니다. 그것을 확인해야합니다.

+0

git-svn을 사용하면 로컬 repo (원격 SVN 추적)를 커밋하고 나중에 diff를 SVN 저장소로 푸시 (push) 할 수 있습니다. –

1

Bazaar을 로컬 저장소로 사용하고 중앙 SVN 서버로 다시 커밋하는 것이 좋습니다. Bazaar에는 분산 소스 제어를 기존 클라이언트 - 서버 소스 제어 시스템에 통합하기위한 멋진 플러그인이 있습니다.

1

SVN 서버를 사용하고 있지만 로컬 저장소가 필요하고 두 저장소간에 쉽게 동기화하려는 경우 SVK을 사용해야합니다. 분기 할 수있는 로컬 미러를 만듭니다. 거울에 대한 커밋은 트렁크로 병합됩니다.

0

그래서 내가 가진 해결책은 svnadmin 덤프 /로드 기능을 사용하는 것입니다. 저는 주로 Ruby on Rails 프로젝트에서 이것을 사용하여 미디어 사원 계정에 배포하고 있습니다. 새로운 버전의 사이트를 배포 할 준비가되면 로컬 저장소에 체크인 된 코드가 파일로 덤프되고 그 파일은 ssh를 통해 서버에 복사됩니다. 일단 서버에서 SVN 서버에로드를 수행하는 쉘 스크립트를 실행하기 위해 ssh를 사용할 것입니다. 그 다음 서버 코드를 체크 아웃하고 레일스 앱 디렉토리에 복사하고 마이그레이션을 실행 한 다음 서버를 다시 시작합니다.

이 방법을 사용하면 현재 생산중인 코드가 서버 SVN repo의 최신 개정을 반영한다는 것을 확신 할 수 있습니다.

덤프 /로드 기능에 대한 링크를 제공 해주신 Fernando에게 감사드립니다.

레코드에 대해이 질문을 게시하기 전에 Git 솔루션을 평가했는데 NetBeans를이 프로젝트의 IDE로 사용하고 있기 때문에 (NetBeans에는 정말 훌륭한 Ruby/RoR 플러그인이 있습니다) Git 플러그인은 NB는 다소 버그가있는 것처럼 보이고 SVN 플러그인은 견고한 반면 제대로 작동하지 않았습니다.

관련 문제