2011-09-17 3 views
7

나는 수은 태그에 대해 읽었습니다. 일반적으로 릴리즈 포인트를 표시하기 위해 changeset에 태그를 붙이는 것을 볼 수 있습니다.이 태그 역시 수정 버전으로 제어됩니다.Mercurial에서 태그 파일을 분리하는 이유

그러나 나는 .hgtags 파일을 가지고 있다는 생각을 정말로 이해할 수 없었다. 이 파일의 목적은 무엇입니까?

답변

5

.hgtags 파일을 사용하면 .hgtags 파일의 변경 내용을 다른 모든 파일의 변경 내용을 기록하는 데 사용 된 것과 동일한 형식으로 기록 할 수 있습니다. 또한 파일 변경 사항을 전송하는 데 사용되는 것과 동일한 형식으로 태그를 리포지토리간에 전송할 수 있습니다.

이것은 Mercurial이 디렉토리 변경 사항을 저장하기위한 하나의 시스템과 변경 사항을 디렉토리로 전송하는 하나의 프로토콜을 구현하고 파일 전송을 변경할 때 분기 및 태그 정보를 자동으로 처리하도록합니다.

.hgtags 파일의 기록을보고 프로젝트의 태그 기록을 볼 수도 있습니다.

+2

단점은'hg clone -r '과 나중에 분리 된 두 개의 별도의 태그가 나중에 병합 될 때'.hgtags' 파일에서 충돌을 해결하는 불필요한 요구 사항을 포함합니다. – Jesse

+0

+1, 동일한 원칙이'.hgignore '에도 적용됩니다. –

+0

나는이 논쟁을 이해하지만, "편의를위한 해킹"이기 때문에 많이 보인다. 또한 태그가 실제로 Hg의 일급 부분이 아니라는 점도 인정합니다. –

0

두 개의 관련 리포지토리에있는 태그 이름이 충돌 할 수 있습니다.

E.G. 태그 A는 변경 집합 id X의 한 repo 지점에있을 수 있고 다른 repo에서 같은 태그가 변경 집합 id Y를 가리킬 수 있습니다. 병합 중에이 충돌을 해결해야합니다.

병합 중 충돌은 파일 및 관련 수정을 검사하여 해결됩니다.

따라서 태그는 repo의 일반 파일에 저장되어야합니다.

0

실제로 별도의 태그 파일을 가지고있는 용도는 전혀 없습니다. 저장소 기록 (태그 포함)은 'log'명령으로 잘보아야합니다. tags 파일을 사용하면 중요한 규칙이 깨집니다. 버전 시스템과 관련된 변경으로 인해 저장소가 변경되지 않아야합니다.

관련 문제