5

我正在使用 Mercurial 进行版本控制,并且在我的 Web 根目录中有一个 .htaccess 文件,其重写规则取决于它是我的本地主机还是我的开发服务器等。因此,我将“.htaccess”放入了我的 .hgignore 文件,因此它不是版本控制的一部分。

但是,我还有另一个 .htaccess 文件,位于 .hg/.htaccess,带有“全部拒绝”,因此我的 .hg 文件夹无法通过网络访问。我确实希望将此 htaccess 文件签入到版本控制中,这样我就不会忘记在新服务器上设置它等。

有没有办法做到这一点?似乎只是将“.htaccess”放入我的 hgignore 使它忽略位于任何地方的所有 .htaccess 文件。我尝试了“./.htaccess”,希望它会忽略根级别一级,但不是 .hg/.htaccess——虽然没有用。我试过做研究,但运气不佳。

谢谢,如果我在某处遗漏了一些明显的东西,我很抱歉!

4

2 回答 2

2

这不可能。不是因为忽略,而是因为.hgmercurial 无法跟踪来自的文件。

因此,您最好使用适合您大多数要求的模板创建和签入,.htaccess.dist并在特定机器上签出后 - 复制.htaceccess.dist.htaccess其中并进行必要的更改。

于 2012-10-24T19:50:45.117 回答
2

有一个(简单而优雅的)解决方案。看来您正在使用 glob 语法。使用简单的正则表达式,您可以只忽略存储库“根”中的文件。假设您只想忽略主 .htaccess,您必须将以下内容附加到 .hgignore:

syntax: regexp
^\.htaccess

此外,注释掉或删除 .hgignore 中的 .htaccess。请注意,该行下方的所有模式syntax: regexp都必须采用 Perl/Python 风格的正则表达式,如 man hgignore 中所述。

希望这可以帮助!

于 2013-01-23T10:16:14.810 回答