상당히 표준 소스 트리 접근 + 수은 subrepositories를 사용하는 마스터 프로젝트가 있습니다.Mercurial subrepositories - 더 복잡한 종속 계층 관리
이제 Sub2가 Sub1의 코드를 필요로하므로이 새로운 종속 구조를 조정해야합니다.
물론 문제는 위와 같은 방법으로 Sub1을 Sub2의 하위 리포지토리로 추가하면이 추악한 상황이 발생한다는 것입니다.
\source\contrib\Sub2\source\contrib\Sub1
마스터에는 이제 Sub1!
그래서 내가 subrepos (=의 RHS)를 참조 할 때 상대 경로를 사용해야한다는 것을 알고 있습니다.하지만 이해할 때 여기에는 내 시나리오가 도움이되지 않습니다. LHS를 외부의 외부에 게시 할 수있는 방법이 없다고 생각합니다. 은이 내가 정말로 필요한 곳입니다.
이 문제를 해결하는 방법에 대한 몇 가지 아이디어가 있지만 아무도 나와 맞지 않습니다. 더 좋은 방법이 있어야한다고 생각합니다. 저의 이상적인 해결책은 여러 복사본을 가지고있는 형벌을 지불하면서 여러 프로젝트에서 동일한 하위 repo를 공유 할 수있게 해줍니다. 그건 그냥
뿐만 SUB1 제거 (나도 같은 HG 버전을 사용하는 것이 아니라 독립적으로 revisioned되고 SUB1에 대한 종속성이있는 모든 프로젝트를 가지고 싶습니다 플러스) 여기 내 시나리오에서 낭비와 비효율적 인 것 같습니다 마스터의 하위 리포지토리를 만들고 마스터 솔루션의 상대 경로를 변경하여 이중으로 중첩 된 Sub1을 참조합니다. 이 경로 구조가 끔찍 할뿐만 아니라 Sub1에 대한 종속성이있는 마스터에 Sub3을 추가하면 여전히 Sub1 사본이 두 개 있습니다.
Sub1의 복사본을 컴파일하고 \ lib 디렉토리에 고정하십시오. Sub1은 여전히 churn을 겪고 있으며 소스 버전에 비해 빌드하려고합니다. 나는 끊임없이 새로운 바이너리를 소스 트리에 항상 복사하는 세금을 지불하고 싶지 않고 (그리고 나무를 부풀게한다.)
Sub1에 대한 Sub2의 종속성을 어떻게 든 상연합니다. 저장소의 아키텍처를 기반으로, 이것은 아마도 일어나지 않을 것입니다. Sub1은 매우 일반적인 용도의 공유 라이브러리 코드를 포함합니다. Sub2에는 클라이언트 SDK와 서버 구현이라는 두 개의 매우 다른 프로젝트에서 필요한 WCF 서비스 계약/인터페이스/유형이 포함되어 있습니다. 현재이 저장소를 분리 된 상태로 유지하는 것이 좋습니다.
어쩌면 나는이 잘못에 대해 생각하고 있습니다. 아니면 어쩌면 내가 약간의 hg 트릭을 알지 못합니다.
도움을 주시면 감사하겠습니다.
잘 수 wouly GNU/리눅스에
, 그건 내 생각 완전히 끔찍한 해결책이 아니다 그리고 나는이 '형제'유형 설정에서 한 내가 항상 곁에 의존하는 코드를 가지고 문제를 해결해야한다고 생각 . 물론 나는 형제들을 함께 지키기 위해서 Mercurial에 추가 저장소를 갖게 될 것이지만 그것은 내가해야하는 절충일지도 모릅니다. 아이디어를 가져 주셔서 감사합니다 - 나는 그것을 고려하지 않았습니다. –대답을 아직 채울 준비가되지 않았습니다. 셀렌의 누군가가 "모범 사례"로 소리를지를 것을 기대합니다. 0 –
저장소 내 파일에 하드 링크를 사용해야하므로 추가 저장소가 손상되지 않아야합니다. –