2011-10-17 2 views
5

나는 여러 개의 하위 레파지토리가있는 Mercurial 저장소가 있습니다. 주 리포지토리와 선택적으로 하위 리포지토리에 둘 다 일반 .hgignore-file (예 : 개체 파일 무시) 만 정의 할 수 있습니까?Mercurial 저장소의 .hgignore를 모든 하위 레고에서 사용할 수있게 만드시겠습니까?

설명서에 충분한 정보가 없습니다. 내 홈 디렉토리에 .hgignore 파일을

[ui] 
ignore = .hgignore 

으로 지정하면 작동하지 않습니다.

아이디어가 있으십니까?

답변

3

각 서브 페어에있는 .hgignore 파일은 해당 서브 페어의 특수 파일이됩니다. 글로벌 .hgrc (그리고하지 않습니다에서의 repo에 ignore = .hgignore 당신을 위해 작동하지 않았다 일을 왜

[ui] 
ignore.main = \absolute\path\to\mainrepo\.hgignore 

그 이유는 다음 각 subrepo의 hgrc 파일에이를 포함하여 주요 REPO의 .hgignore 주 하나를 사용할 수 있습니다 hgrc)는 단순히 .hgignore을 갖는 것이 상대적인 파일 경로이며, 절대 경로에 대한 그 해상도는 hg을 호출 할 때 사용되는 현재 작업 디렉토리에 의존한다는 것입니다. 예 :

  • 당신이 \repos\main\에있어 및 hg st를 호출하면, 그것은 \repos\main\.hgignore 찾습니다. hg st -R nested을 호출하면 현재 작업 디렉토리가 여전히 동일하기 때문에 마찬가지입니다.
  • 그러나 \repos\main\nested\에 있고 hg st을 호출하면 구성이 \repos\main\nested\.hgignore이됩니다. 당신이 당신의 홈 디렉토리에있는 글로벌 .hgignore을 지정하려면

, 당신은 (또는 적어도 훨씬 적은 상대)가 아닌 상대 경로를 지정해야합니다 :

[ui] 
ignore = ~\.hgignore 
+0

나 ' 거기에 당신의 첫 번째 글 머리 점에 대해 확실하지 않습니다. 'hg st -R nested'를 호출하면'\ repos \ main \ nested \ .hgignore'가 사용됩니다. 이는'중첩 된 '저장소의 작업 디렉토리에있는'.hgignore' 파일입니다. 의미는 있지만 그렇게 읽지는 않습니다. – icabod

+0

@icabod : 테스트 할 * nix 컴퓨터가 없지만 Windows가 작동하는 방식입니다. 'main'과'nested'에 다른 extra.hgignore 파일이 있고'nested \ .hg \ hgrc'에'ignore = extra.hgignore'를 넣으면'hg st'와'hg st -R nested'를 실행합니다. 둘 다'main \ extra.hgignore'에서 가져옵니다. ''nested \ extra.hgignore' 대신에''nested로''cd ''할 때만 가능합니다. (내 테스트를 위해 나는'main'과'nested' 둘 다에 네 개의 확장자를 포함하여 4 개의 파일을 사용했습니다.) –

+0

아, 나는 그것을 시도 할 때 당신의 대답의 일부를 놓쳤다 고 생각합니다. 내 실수 :) – icabod

관련 문제