2012-10-24 32 views
5

我正在使用Mercurial進行版本控制,並且在我的web根目錄中有一個.htaccess文件,重寫規則根據它是我的本地主機還是我的開發服務器等而不同。因此,我已將「 .htaccess「放到我的.hgignore文件中,這樣它就不是版本控制的一部分。Mercurial選擇性hgignore htaccess文件

但是,我在.hg/.htaccess中還有另一個.htaccess文件,其中包含「拒絕所有」,這樣我的.hg文件夾就不能通過網絡訪問。我確實希望將這個htaccess文件簽入到版本控制中,以便我不會忘記將其設置在新服務器上等。

有沒有辦法做到這一點?看起來好像只要將「.htaccess」放入我的hgignore就會忽略位於任何位置的所有.htaccess文件。我試過「./.htaccess」,希望忽略根級別,但不是.hg/.htaccess - 雖然沒有工作。我試過做研究,沒有太多的運氣。

謝謝,抱歉,如果我錯過了某處明顯的東西!

回答

2

這是不可能的。不是因爲忽略,而是因爲.hg的文件不能被mercurial跟蹤。

所以你更好地創造和登機.htaccess.dist與最適合你的要求的模板,你看看它在特定機器上後 - 複製.htaceccess.dist.htaccess,並在它所需的更改。

+0

我明白了。好的,這聽起來像個好主意。謝謝! – Simon

2

有一個(簡單和優雅)的解決方案。看起來你正在使用glob語法。使用簡單的正則表達式,您可以只忽略存儲庫「根目錄」中的文件。假設你的忽視就在主的.htaccess,你必須附加以下的.hgignore:

syntax: regexp 
^\.htaccess 

此外,註釋掉或從.hgignore刪除的.htaccess。請注意,syntax: regexp行以下的所有模式必須使用Perl/Python風格的正則表達式,如man hgignore中所述。

希望這會有所幫助!

+0

哦,我甚至沒有意識到你可以使用這樣複雜的正則表達式。真棒! – Simon

+0

這太棒了。希望我能夠多點贊成。 –