2011-10-17 67 views
5

我有一個Mercurial存儲庫,有幾個subrepos。是否有可能僅在主存儲庫中定義一般的.hgignore-File(例如忽略對象文件),並且可以在子存儲庫中定義一個專門的文件?使Mercurial存儲庫中的.hgignore可供所有subrepos使用?

手冊中沒有足夠的信息。指定.hgignore文件與

[ui] 
ignore = .hgignore 

我的主目錄中的.hgrc也不起作用。

任何想法?

回答

3

A .hgignore在每個subrepo文件將作爲該subrepo專門的一個。

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

爲什麼這樣做在您的全球.hgrc(並不會在回購ignore = .hgignore沒有爲你工作的原因:然後你就可以通過包括本在每個subrepo的hgrc文件中使用的主要回購的.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是在你的home目錄下,你需要用非相對路徑指定它(或相對於至少要少得多):

[ui] 
ignore = ~\.hgignore 
+0

我我不確定你的第一個要點。如果你調用'hg st -R-nested',那麼將使用'\ repos \ main \ nested \ .hgignore',因爲這是'nested'回購工作目錄中的'.hgignore'文件 - 可能是你意思是,但它不會這樣讀。 – icabod

+0

@icabod:我沒有用於測試的* nix機器,但這就是Windows的行爲。如果我在'main'和'nested'中有不同'extra.hgignore'文件,並且在'nested \ .hg \ hgrc'中放置了'ignore = extra.hgignore',則執行'hg st'和'hg st -R嵌套'都從'main \ extra.hgignore'拉。只有當我cd到'nested'時,它纔會抓住'nested \ extra.hgignore'。 (對於我的測試,我在'main'和'nested'中使用了4個文件,在忽略文件中分配了4個不同的擴展名。) –

+0

啊,我想我在試用時錯過了一部分答案。我的錯 :) – icabod

相關問題