3

我用谷歌搜索了一下,但没有找到关于该主题的任何建议。.hgignore 中是否可以使用多行正则表达式?我正在编写一个 magento 模块,并且不想只在存储库中包含我的模块代码,所以我想出了这个正则表达式,但如果我必须将它写在一行中,那将是一团糟。

syntax: regexp
^(?!(
   app/code/local/Mage/Myreviews/|
   app/design/frontend/default/default/layout/myreviews\.xml|
   app/design/frontend/default/default/template/myreviews/|
   app/etc/modules/Mage_Myreviews\.xml|
   skin/frontend/default/default/css/myreviews/|
   skin/frontend/default/default/myreviews/|
   js/myreviews/
)).*
4

2 回答 2

3

您可以将文件添加到存储库并让 mercurial 跟踪它们,即使它们符合忽略规则,所以通常做这种事情的最好方法是忽略太多,例如(对磁电机模块一无所知,所以这个可能是错的)

syntax: glob
app/*
skin/*
js/myreviews/*

然后明确地hg 添加你想要的文件。

正如 Joel 指出的那样, hg adds--include--excludeoptions 在这些场景中也很有用

先发制人的附加信息:hg forget将撤消跟踪文件而不删除它

于 2011-09-01T14:01:58.090 回答
3

至于您问题的规范答案,是否支持多行正则表达式?不。为了确认,请查看 Python 包中的函数ignorepats——它逐行遍历文件中的行。ignore.pymercurial

至于你应该做什么,@jk.'s answer很好(和glob: *你想出的那个)。

于 2011-09-01T14:43:03.583 回答