2016-12-22 3 views
1

여러 개의 하위 리포지토리가있는 수은 리포지토리 (주 repo)가 있습니다.서브 레포지토리의 수정본이 변경되었거나 더러워진 경우 표시

작업 복사본에서 하위 repo의 수정본 (이전 및 새 개정판의 정보 포함)이 변경되었는지 또는 하위 repo 상태가 더티인지를 표시하려면 mercurial 명령이 필요합니다.

어떻게하면됩니까?

+0

"변경된 하위 저장소의 개정판"이란 무엇을 의미합니까? 새로운 리비전이 추가되었거나 작업중인 활성 리비전이 변경된 경우에만 (서브 리포지토리가 의존하는 하위 리포지토리 리비전 만 기록하므로 상위 리포 일 경우) – planetmaker

+0

사용 사례를 설명하려고합니다. 특정 주 repo 버전으로 업데이트하여 모든 하위 repo에 대해 특정 개정을 유도합니다. 이후에 나는 (메인 repo 개정판에서 수정 된 sub repo 개정보다) 다른 개정으로 일부 repos를 갱신 할 수 있습니다. 마지막으로 이러한 변경 사항이 나열된 보고서를 생성하고 싶습니다. 이게 도움이 되니? – wewa

답변

1

대부분의 수은 명령은 -S 또는 --subrepos 플래그를 허용합니다. 실제를 얻기 위해 소원에 관해서는

$ cd opengfx/ 
$ hg st 
$ hg id 
10065545725a tip 
$ cd .. 
$ hg st -S 
M opengfx/.hgtags 
M opengfx/Makefile 
A opengfx/lang/japanese.lng 
$ cat .hgsubstate 
785bc42adf236f077333c55c58490cce16367e92 opengfx 

: 따라서 hg st -S를 호출하여 당신은 자신의 상태가 .hgsubstate 파일에 기록 된 상태에서 다른 경우, 하위 REPOS 사람들을 포함하는 모든 변경된 파일의 목록을 수정, 그건 하나의 명령으로 AFAIK 불가능합니다. 그러나 당신은 항상 위와 같이 각 하위의 repos의 상태를 확인할 수 있습니다거나 작동하는 다른 경로를 수은 제공함으로써 주요 REPO에서이를 확인할 수 있습니다

각각의 상태를 확인하기 위해
$ hg id -R opengfx 
10065545725a tip 

가에 비해 REPO 부모의 repo에 필요한 것을, 나는 몇 가지 간단한 배쉬에 의존 것 :

for i in $(cat .hgsubstate | cut -d\ -f2); do echo $i is at $(hg id -R $i) but parent requires $(cat .hgsubstate | grep $i | cut -d\ -f1); done 

유사한 방식으로

opengfx is at 10065545725a tip but parent requires 785bc42adf236f077333c55c58490cce16367e92 

같은 출력하면 당신은 또한 WH 확인할 수 있습니다 준다 0x대신 hg st을 사용하여 상태가 수정됩니다.