2010-02-19 6 views
0

:SVN의 외관은 SVN의 잎 디렉토리를 유지 내가 좋아하는 무언가를 추가하려고 해요

하위 디렉터리/모듈/모듈이 {1,2} 내선은 특히 외관에 정의 된
subdir 
    modules 
    module1ext 
    module2ext 
    module3NOText 
    other dir not from externals 

하지만,/subdir도/모듈도 아니다. 이것은 기본적으로 모듈 {1,2} ext를 svn repo에 추가하지만 서브 디렉토리와 모듈은 추가하지 않습니다.

그래서 지금은 subdir (외장이 아닌 다른 dir) 또는 모듈 (module3NOText) 아래에 디렉토리를 추가하려고합니다. 상위 디렉토리가 svn 아래에 있지 않기 때문에 설치할 수 없습니다. 방금 그들을 추가해야합니까? 외부 정의를 망칠 까?

또한 module1ext를 수정하려고한다고 가정 해 봅시다. 나는 외부 정의를 제거한 다음 svn이 그 dir을 추가 할 것을 생각하고 있었다. 내 경험에 의하면, 그게 효과가 있지만, 그것이 어떤 단점을 가지고 있는지, 아니면 전혀 끝내야 하는지를 말해 줄 수 있습니까?

답변

1

여기에 뭔가가 섞여있는 것 같습니다.

trunk 
    subdir 
    modules ---------> property svn:externals with links to module1ext and module2ext 
     module3NOText 
    otherdirnotfromexternals 

트렁크를 체크 아웃, 모든 폴더 (하위 디렉터리, 모듈, module3NOTExt, otherdirnotfromexternals) SVN 버전 제어 아래에 있습니다 : 같은

저장소 (repository)가 보일 것입니다. 모듈은 두 개의 외부 모듈을 포함해야합니다 (svn : externals 등록 정보가 올바르게 설정되어있는 경우).

그래서 하위 디렉토리 또는 모듈 아래에 디렉토리를 추가하려면 svn add를 사용해야합니다.

외부 코드를 수정하려면 원래 저장소에 가능한 변경 사항을 따라야합니다. 즉, 지점을 만들고 싶습니다.

  • 코드가 같은 저장소에있는 경우, 당신은 단순히 지점을 만들 svn copy을 사용할 수 있으며, 코드가 다른 저장소에있는 경우 svn merge
  • 를 사용하여, 당신은 vendor branch으로 이것을 관리 할 수 ​​있습니다. 간단히 말해서 : 자신의 저장소에 코드를 가져오고, 시작한 지점을 표시하기 위해 태그를 붙이고, 자신의 프로젝트로 분기 한 다음 수정하십시오. 원래 코드의 변경 내용을 병합하려면 공급 업체 분기에서 새 버전을 가져온 다음 다시 태그를 지정하고 변경 내용을 프로젝트 분기에 병합합니다.
+0

사실, 아이디어는 핵심 저장소 (기술적으로 지점이지만 대부분은 hg 요즘을 사용하므로 ...)에서 공급 업체 분기를 사용한 다음 해당 코어에서 svn : exports를 통해 파생되는 여러 repos를가집니다. 모든 병합은 핵심 수준에서 이루어지며 svn : exports가 병합을 처리합니다. 코어와 파생 repos 사이의 차이점은 추가 모듈입니다. 나는 svn : externals가 독립적 인 repo로 취급되고 subdirs가 자동으로 추가되지 않는다는 것을 알았습니다. svn을 추가 한 다음 언급 한 구조를 얻으십시오. 감사. – Neo

+0

@ 네오 당신은 "svn : externals이 독립적 인 repo로 취급되고 그로 연결된 서브 디렉토리가 자동으로 추가되지 않음"이라는 의미에 대해 자세히 설명 할 수 있습니까? 나는 이것을 이해하지 못한다 ... – jeroenh