2013-04-30 2 views
0

저는 Mercurial을 데스크톱에서 사용하고 로컬 리포지토리를 a centralized server으로 푸시합니다. 이 원격 서버가 리포지토리에 파일의 로컬 복사본을 보유하고 있지 않음을 알았습니다 (이 디렉터리는 분명히 .hg을 제외하고는 비어 있습니다).Mercurial : 원격 리포지토리에서 원격 리포지토리의 로컬 복사본을 만듭니다.

이러한 디렉토리에 로컬 복사본을 채우는 가장 좋은 방법은 무엇입니까? (차례 차례로, 그 서버상의 관련이없는 다양한 서비스에 의해 사용됩니다).

내가 지금까지 한 것은 후크와 hg archive을 사용하여 로컬 복사본을 만드는 것입니다. 이것은 만족스러운 해결책이 될 것이지만, 저장소마다 hgrc 파일을 구성해야합니다 (지루한 일이지만, 이것을 집중화하는 방법을 찾지 못했습니다 /etc/mercurial/hgrc). 전역 스크립트 (/etc/mercurial/hgrc, 각 변경 그룹 이벤트에 대해 실행 중일 수 있습니다)? (이 경우 if...then 시나리오에서 사용할 저장소 이름을 얻으려면 어떻게해야합니까?)

답변

1

원격 저장소에 액세스 할 수 있으면 변경 그룹이 들어올 때 후크를 설치하고 그 때 hg update을 수행 할 수 있습니다 일어난다.

빠른 검사가 보여이 in the FAQ (질문 4.21), 그러나 복제/요약 : 원격 저장소에 .hg/hgrc 파일을 편집하고 다음 행을 추가 : 원격 저장소가 푸시됩니다 때마다

[hooks] 
changegroup = hg update 

(또는 pull을 수행하는 경우) 최신 변경 집합으로 업데이트됩니다.

일부주의 사항 - 원격 측의 파일을 변경 한 경우 오류가 발생할 수 있습니다 (대신 hg update -C을 사용할 수 있음). 또한 익명의 브랜치 (의식적으로 강제해야 할)를 푸시했다면, 업데이트 할 대상으로 업데이트 할 수 없습니다.

+0

감사합니다 - 이것은 내가 찾고있는 것입니다 (나는'hg archive'에 너무 집중했습니다). – WoJ

관련 문제