2009-03-31 4 views
4

두 개의 리포지토리가 있습니다. 하나는 현재 코드 용이고 하나는 프로젝트 관리 용입니다.SVN을 위해 다른 저장소에 코드를 어떻게 배치합니까?

이제 프로젝트 관리 저장소에 코드를 추가해야합니다.

SVN은 나에게 오류를 제공, 나는 그래서 코드를 내보내고 프로젝트 저장소에 체크인

SVN이 일 (다른 저장소) 할 수없는 문서에서 발견.

질문 :

  • 어떻게 다른 저장소에 코드를 분기하는?
  • 필자의 경우 프로젝트 저장소 인 에서 현재 저장소로 변경 사항을 되돌릴 수 있습니까? (아직 테스트하지는 않았지만 diff 또는 패치가 작동한다고 생각합니다.)

추신 : 저는 트렁크/분기 방식이 있음을 알고 있지만 두 개의 저장소를 사용합니다.

답변

6

내가 맞다면 이미 버전 관리하에있는 내용을 다른 저장소에 추가하고 싶습니까? 그게 있다면 다른 저장소를 병합하는 데 도움이되는 svnsync을 살펴 봐야 할 것입니다.

그렇지 않으면 두 저장소를 유지하고 이들이 공존하도록 external 정의 (링크)를 추가하는 것이 더 간단 할 수 있습니다. 이 방법을 사용하면 아무 것도 깨뜨리는 것에 신경 쓰지 않아도됩니다.

1

책임자가 저장소 (thanx, Blair)를 의미하는 경우 다른 저장소로 분기 할 수 없음을 알았습니다. 그러나 코드와 프로젝트가 관련되어 있으면 동일한 리포지토리에 포함시키는 것이 좋습니다. svn에 대해 더 많이 배우고 더 잘 사용하고 싶을 것입니다. 예를 들어 "트렁크"는 단지 디렉토리 이름이므로 프로젝트에 대해 하나씩, 코드에 대해 하나씩 가질 수 있습니다. 이러한 특정 단어를 사용하더라도 대부분의 사람들은 "코드"가 "프로젝트"안에있을 것으로 기대합니다.

어쨌든 저장소 외부로 이동하면 모든 기록이 손실되고 분기 또는 병합 가능성이 줄어 듭니다. 조직을 재고해야합니다. 또는 원하는 것을 수행하는 다른 버전 제어 시스템을 사용하십시오.

+1

나는 올바른 방법으로 해결하는 방법을 알고 있지만, 우리 모두는 쉽게 조직 ...처럼 변경할 수없는 것을 직면합니다. – linjunhalida

0

모든 코드가 하나의 저장소에 있어야합니다. 당신이 사용하는 낱말들,

name/trunk/src 
name/branches/dev/src 

을 또는 :

은 다음과 같이 할 수

name/current-code/src 
name/project/src 

을 다음, 당신은 쉽게 svn merge를 앞뒤로.

+0

우리는 그것이 작동하지만, 우리는 2 개의 저장소를 사용한다는 것을 알고 있습니다 ... .... – linjunhalida

+3

-1은 질문에 설명 된 상황을 처리하는 대신 "있어야 함"이라고 말합니다. 그 사람은 회사의 코드가 다른 저장소에 저장되도록 도울 수 없습니다. –

+1

경우에 따라 원본 저장소에서 직접 분기를 만들 수있는 권한이 없습니다. 예를 들어 일부 오픈 소스 프로젝트. 여전히 주 트렁크와 코드를 동기화하고 다른 저장소에서 소스 제어하에 자신 만의 개발을 유지하려고 할 수 있습니다. –

3

TortoiseSVN은 "여기에 파일 복사 및 추가"기능을 제공하지만 SVN 1.5.5부터는이 기능이 지원되지 않습니다. 아직 1.6.0으로 테스트하지 않았습니다

파일을 repo A에서 repo B의 디렉토리로 마우스 오른쪽 버튼으로 드래그 (마우스 왼쪽 드래그가 아닌)하고 마우스를 놓습니다. 원하는 것을 묻는 메뉴가 나타납니다. 내 생각에, 선택할 수있는 4 가지 옵션이 있습니다 (일반적인 OS 옵션 제외). 가장 적합한 것을 선택하십시오.

1

공상 svn-book은 svn_load_dirs.pl이라는이 과정을 더 쉽게하기 위해 사용할 수있는 스크립트를 말합니다. online manual

관련 문제