2011-12-17 1 views
7

이것이 Mercurial에서 가능한지 궁금합니다. 나는 항상 수동으로 지정된 changeset, 또는 더 나은 아직 - 태그로 고정되는 프로젝트에 하위 레프트를 갖고 싶습니다.Mercurial 하위 저장소가 항상 특정 변경 집합이나 태그를 가리 키도록 만드는 방법은 무엇입니까?

기본적으로 내가 달성하고자하는 것은 메인 레포에 핵심 시스템을 가지고 서브 레 포스에있는 모든 모듈과 구성 요소를 갖도록하는 것이지만, 그 서브 레포트가 팁을 가리 키지 않고, 그 구성 요소/모듈 (따라서 태그).

답변

3

하위 보관함은 원하는대로 정확하게 작동합니다.

Mercurial은 자동으로 서브 페코를 팁으로 업데이트하지 않습니다. 항상 당신이 선택하는 변경 집합에 머물러 있습니다. documentation에서 :

Subrepos 은 자동으로 소스의 최신 변경 집합을 추적하지 않습니다. 대신 변경 집합이 에 해당하는 변경 집합으로 업데이트되고 최상위 변경 집합에서 변경 집합이 체크 아웃됩니다. 따라서 개발자는 업데이트 할 때 항상 일관된 호환 코드 집합과 라이브러리를 얻습니다.

  1. echo subrepo = https://example.com/subrepo/repo/path > .hgsub
  2. hg add .hgsub
  3. hg clone https://example.com/subrepo/repo/path subrepo
  4. hg -R subrepo update mytag
  5. hg commit
:

는 다음과 같은 단계를 수행 할 수 있습니다, 당신이 원하는 것을 달성하기 위해

을 수동으로으로 업데이트하지 않는 한 mytag 태그에 남아있는 지정된 저장소의 내용을 포함하는 서브repo 디렉토리가 생성됩니다.

저장소를 복제하는 모든 사용자는 동일한 변경 세트 (예 : mytag)에 서브 프리 토를 갖습니다.

참고로, 서브 레포가 업데이트되는 변경 집합은 주 저장소의 루트에있는 .hgsubstate 파일에 저장됩니다.