2010-07-29 5 views
1

부모 리포에 하위 리포지토리로 존재하는 여러 공유 라이브러리가 있습니다.하위 리포지토리를 사용할 때 동료와의 연결 풀다운

default = http://ourfogbugz.us.com/..../SharedSub1 

예쁜 표준 :

SharedSub1 = http://ourfogbugz.us.com/..../SharedSub1 
SharedSub2 = http://ourfogbugz.us.com/..../SharedSub2 
SharedSub3 = http://ourfogbugz.us.com/..../SharedSub3 
SharedSub4 = http://ourfogbugz.us.com/..../SharedSub4 

각 subrepo의 hgrc는 다음과 같은 :

/ParentRepo 
---- .hg 
---- .hgsub 
---- .hgsubstate 
---- SharedSub1 
---- SharedSub2 
---- SharedSub3 
---- SharedSub4 
---- ParentRepo.sln 

.hgsub 다음과 같다 : 사람이 부모의 repo를 복제합니다 경우 같은 것이 보인다 물건.

하지만!

어떻게이 설정을 사용하면 동료가 중앙 서버를 중개자로 사용하지 않고 다른 사람을 끌어 당길 수 있습니까? 따라서 동료 A는 'hg serve'를 수행하고 B는 'hg pull http://coworkerA.us.com:8000'...하지만이 작업은 실패합니다. hgsub 파일이 여전히 중앙 서버를 가리키고 있으므로 B는 중앙 서버에서만 변경 사항을 가져옵니다. , 중앙 서버에 존재하지 않는 A의 서브 레포 (subrepos)에서 어떤 변화도 얻지 못한다.

중앙 서버가 다운되거나 연결할 수없는 경우이 작업은 더욱 복잡해집니다. 사람들이 하위 표현을 사용하여 직접 서로 끌어낼 수있는 방법은 없습니다!

하위 작업자를 사용하여 동료 간 작업을 수행하는 방법은 무엇입니까? hgrc 및 hgsub 파일을 편집하는 것은 의문의 여지가 없습니다. 왜냐하면 각 subrepo (약 20 개가 있음)와 각 동료에 대해 한 번씩 수행해야하기 때문입니다! http://kiln.stackexchange.com/questions/1780/pulling-from-a-co-worker-when-using-subrepositories

답변

2

당신은 (일반적으로해야한다) 당신의 .hgsub의 entires에서 상대 경로를 사용할 수 있습니다

은 또한 더 많은 사람들을 공격하기 위해 가마 StackExchange에이 질문을 게시했다. 그 라인이 있다면 :

SharedSub1 = ../SharedSub1 
SharedSub2 = ../SharedSub2 
SharedSub3 = ../SharedSub3 
SharedSub4 = ../SharedSub4 

는 당신은, 중앙에서 복제 친구, 또는 자신의 로컬 클론 수 있습니다.

+0

따라서 중앙 서버의 .hgsub 파일에 상대 경로가 있습니까? 로컬에 복제 할 때 하위 디렉토리 하나의 디렉토리를 별도로 복사해야한다는 의미입니까? – Andrew

+0

각각 하나의 사본이 필요합니다. 예를 들어 최상위 프로젝트의 여러 복제본이 동일한 ../SharedSub1 로컬 복제본을 가리킬 수 있습니다 - 작업 디렉토리가 사용되지 않고 수정본이 저장됩니다 부모 repo의 .hgsubstate의 로컬 복제본이 서로 충돌하지 않도록합니다. –

+0

하지만 모든 SharedSub (s)을 수동으로 복제해야합니다. 맞습니까? 허락하신다면, 이것은 한 번의 작업이지만 큰 장애가됩니다. 또한 "hg serve"를 제대로 사용하기 위해 상대적 하위 작업을 수행 했습니까? – Andrew

관련 문제