2011-09-01 1 views
5

내가 할 수있는 Mercurial 서브 레포지토리에 대한 모든 질문을 읽었지만 아직도 어떻게 작동하는지 잘 모릅니다. IIS에서 hgweb.cgi를 사용하므로 모든 repos에 대한 http : // 경로가 있습니다. 변경 사항이 클론에서 변경되었을 때 Mercurial 하위 보관소를 최신 상태로 유지하려면 워크 플로가 필요합니까?

LibrariesSubrepo = LibrariesSubrepo 

내가 프로젝트에서 작업 할 경우

, 나는 그들을 복제 : 나는이 경로 설정을 가지고는 .hgsub 파일에서

/Libraries - http://server/Libraries 
/Project1 - http://server/Project1 
/Project1/LibrariesSubrepo - http://server/Project1/LibrariesSubrepo (clone of libraries) 
/Project2 - http://server/Project1 
/Project2/LibrariesSubrepo - http://server/Project2/LibrariesSubrepo (clone of libraries) 

: 여기

는 기본 레이아웃입니다 내 워크 스테이션에 서버 그래서 나는 Project1과 Project2의 클론을 가지고 그것은 자동으로뿐만 아니라 subrepos를 당긴다.

내 로컬 워크 스테이션의 project1에서/Project1/LibrariesSubrepo의 파일을 일부 변경합니다. 이러한 변경으로 인해 서버의 라이브러리에 대한 소스 저장소로 돌아 가게하려면 어떻게해야합니까? Subrepo에서 소스 repo로 수동으로 변경 사항을 밀어 넣어야합니까?

Project1 repo를 로컬에서 변경 한 다음 해당 변경 사항을 커밋/푸시하고 Project2에서 Project2/LibrariesSubrepo를 업데이트해야하는 서버에서 변경 사항을 가져올 수 있어야합니다. 최신 버전.

답변

4

당신은 확실히 서버의 Libraries 저장소에 Project1LibrariesSubrepo에서 수동으로 밀어 후 수동으로 Project2에 클론에 LibrariesSubrepoLibraries에서 가져올 수 있습니다.

그러나, 당신은 서버에 subrepos을도를 연결할 수 있습니다

  1. share extension 당신이 .hg 폴더를 공유하는 두 개 이상의 저장소를 만들 수 있습니다. 서버에서이 작업을 수행하면 서버의 세 가지 인스턴스 인 서브 페어가 .hg 폴더를 공유합니다.

  2. symlink .hg 폴더 - more oldschol 및 심볼릭 링크 (Unix 서버 또는 Windows Vista 이상에서 권한을 부여한 후)를 만들 수있는 서버에있는 경우에만 작동합니다.

  3. 서버에 하나의 서브 페어 만 유지하고 hgweb 구성에서는 세 번 노출 시키십시오. 이처럼 : Project1, Project2Libraries : 모든 경우에

    [paths] 
    Project1     = /repos/Project1 
    Project1/LibrariesSubrepo = /repos/Libraries 
    Project2     = /repos/Project2 
    Project2/LibrariesSubrepo = /repos/Libraries 
    

, 세 개의 서버에 저장소가 실제로있다.

+0

답변 해 주셔서 감사합니다. 좋은 정보! – jpshook

+0

또 하나의 질문 : Subrepos를 사용하여 작업 할 때, 먼저 subrepo를 먼저 커밋 한 다음 부모 레포를 커밋하거나 부모를 커밋해야합니까? – jpshook

+1

관련없는 질문은 새로운 질문으로하고 Mercurial 메일 링리스트에 질문하십시오. 그것은 토론을위한 더 나은 포럼입니다. –

관련 문제