2011-08-19 2 views
1

저는 SVN을 처음 사용합니다. 여기 절대 쓰레기를 말하면 용서하십시오. 공급 업체 그리고 지역SVN 외관 - 전체 프로젝트 또는 부분을 확인하십시오.

나는 내 프로젝트에서 두 개의 저장소를 갖고 싶어 : 난 달성하기 위해 노력하고 무엇

는 다음과 같습니다.

공급 업체 Repo에는 사용중인 프레임 워크의 소스 코드가 포함되며 로컬 repo에는 프레임 워크 내에서 실행되는 모든 로컬 코드가 포함됩니다. 내 로컬 소스 코드가 심볼 링크를 통해 공급 업체와 산재 해 있다는 점도 유의해야합니다.

전체 프로젝트를 체크 아웃하지 않고도 로컬 리포지토리를 확인하고 작업 할 수 있기를 원하는만큼 리포지토리를 분리하고 싶습니다. 때때로 전체 프로젝트가 체크 아웃되어야합니다.

  1. 지역 코드 만
  2. 공급 업체 코드 만
  3. 공급 업체 및 지역 코드
  4. 조합
:

은 이상적으로는, 체크 아웃 다음에 일을하고 커밋 할 수 있어야합니다

SVN 외부에서이 동작을 허용합니까? 그렇지 않다면 이것을 달성하는 것이 최선입니까?

+0

파일 또는 디렉토리 기반의 Symlink? 디렉토리 기반의 sylink는 svn : externals로 변환 할 수 있습니다. – Robert

+0

디렉토리 및 파일 심볼릭 링크. 대부분 디렉토리 일 것입니다. – David

답변

1

svn:externals을 사용하여 이유를 찾을 수 없습니다. 당신이 당신의 지역 코드를 필요로 할 때,

/ 
    local/ 
     branches/ 
     tags/ 
     trunk/ 
    vendor/ 
     <vendor-specific project structure> 

svn co <server>/local/<branch>을 실행하고 공급 업체 코드를 필요로 할 때 당신은 svn co <server>/vendor/<whichever resource(s) you need>을 실행 : 당신이 할 필요가 다른 프로젝트를 체크 아웃하는 경우, 당신은과 같이 저장소를 구성 할 수 있습니다. 제가 놓친 것이 있습니까?

0

외부 사용자는 1) 및 2)를 허용합니다.

3)의 경우 수정 된 각 리포지토리에을 하나씩 두어 커밋 명령을 수행해야합니다.

하지만 (적어도 Linux에서는) 스크립트하기가 쉽습니다.

다른 한편으로 나는 다른 레벨에서 공급 업체와의 통합을 권장합니다. 예를 들어 Java에서는 별도의 repos를 사용하고 서버에 빌드 된 JAR을 통해 통합하는 것이 좋습니다.

0

로컬 및 공급 업체 리포지토리를 분리하면 간단한 단계에서 전체 프로젝트 (로컬 + 공급 업체)를 체크 아웃 할 수 없습니다. 로컬 및 벤더 소스 코드를 포함하여 하나의 저장소 만 있다고 가정합니다. 이제 다음을 수행 할 수 있습니다.

1) 체크 아웃 할 때마다 공급 업체 코드를 얻기 위해 로컬 디렉토리의 외부를 정의하십시오. (항목 1이 만족 됨)

2) 체크 아웃 할 때마다 지역 코드를 얻기 위해 외부 공급 업체 디렉토리를 정의하십시오. (항목 2가 충족 됨)

3) 로컬 및 공급 업체 소스 코드를 체크 아웃하려면 루트 (/ 트렁크) 폴더를 체크 아웃하면됩니다.(항목 3이 만족 됨)

두 개의 저장소가 있어야한다고 주장하는 경우, 항목 1과 항목 2는 외부에서 쉽게 만족할 수 있습니다. 세 번째 항목의 경우 로컬 + 공급 업체 코드를 작업 폴더에 체크 아웃하는 간단한 스크립트를 작성할 수 있습니다.

관련 문제