2013-03-19 1 views
0

Mercurial 저장소 foo을 가정하십시오. 또한 make 작업이 에서 실행되는 것으로 가정하면 리비전 0에서 tip까지 모든 항목이 리포지토리 내에서 변경 될 때마다 업데이트됩니다. 우리가 GNUmakefile이 우리의 저장소 foo의 작업 디렉토리의 일부라고 가정합시다.GNU make and hg : 내 파일이 오래되었다는 것을 결정하는 데 사용할 수있는 파일은 무엇입니까?

hg bundle을 실행할지 여부를 결정하기 위해 foo/.hg 아래의 파일을 의존성으로 사용할 수 있습니까?

답변

3

나는 .hg/store/00changelog.i을 보는 것보다 더 나쁠 수 있다고 생각합니다. 여기에는 저장소의 변경 집합 메타 데이터 색인이 포함됩니다 (매우 작은 저장소의 경우 해당 데이터도 포함). 이것은 작업 디렉토리의 내용에 대해서는 아무 것도 말하지 않습니다! 그러나 완전한 번들을 원한다면 그것은 중요하지 않습니다.

이것은 .hg/requires 파일의 내용에 따라 달라집니다. 특히 저장소는 적어도 store 플래그가 필요합니다. 내가 가정

+0

안녕하세요, @ 대답, 해답을 주셔서 감사합니다. 나는 그것을 확인하고 다시 당신에게 돌아 올께. +1 시간을내어 대답하십시오. 네, 작업 디렉토리 내용은 중요하지 않습니다 ('GNUmakefile' 제외). – 0xC0000022L

1

.hg 내부 파일을 직접 작업이 하지 똑바로 살아라 (TM)

"뭔가 저장소에서 변경 될 때마다 ..."새로운 변경 집합 (들)가있는 경우, 또는 이전 changeset-id가 변경 될 수 있습니다 (기록을 다시 작성 하시겠습니까?). 이 경우 네이티브 Mercurial 명령의 출력이 변경되고 이전 실행 및 현재 결과를 비교하여 선택을 수행합니다.

hg id -i 예를 들어, commit-hook은 저장소의 작업 디렉토리에 파일을 쓰거나 무시할 수 있습니다. 그냥 일부 파일, 당신은 crontab - 작업 확인 예입니다

+0

'hg id -i'는 tip이 아닌 working dir 리비전을 반영하기 때문에 아주 좋은 선택이 아닙니다. 나는'hg id -irtip'가 작동 할 수 있다고 생각합니다. 반면에, 나는 changelog 인덱스에 대한 mtime을 보는 것이 이런 종류의 일에 좋지 않다고 생각합니다. – djc

+0

@djc -yes, 팁을 테스트하는 것을 잊어 버렸습니다. 나를 위해, "합법적 인"방법을 사용하는 것은 더 자연 스럽다. 다른면에서 [MercurialRev] (https://bitbucket.org/JPlenert/mercurialrev)와 같은 것도 좋은 선택 일 수 있습니다. –

관련 문제