我有一段時間試圖找出忽略與特定模式匹配的文件的語法,即:Com.Example/Com.Example.DomainModel23012013101705.somefileextension。該變量似乎是淹沒到文件名(23012013101705)Mercurial Glob語法與文件名中的字符匹配
日期已試過[0-9] .somefileextension和其他模式都無濟於事。
謝謝 斯蒂芬
我有一段時間試圖找出忽略與特定模式匹配的文件的語法,即:Com.Example/Com.Example.DomainModel23012013101705.somefileextension。該變量似乎是淹沒到文件名(23012013101705)Mercurial Glob語法與文件名中的字符匹配
日期已試過[0-9] .somefileextension和其他模式都無濟於事。
謝謝 斯蒂芬
使用正則表達式不是水珠。 Mercurial支持無論支持哪一個。在.hgignore
,這將是:
syntax: regexp
[0-9]\.somefileextension
該正則表達式的嘗試水珠匹配,但你可以,當然,縮小它更像是:
syntax: regexp
^Com\.Example/Com\.Example\.DomainModel\d+\.somefileextension$
Ry4an,不幸的是,作出錯誤。 Grep()不適用於文件名。
我的 「試驗場」
>dir /B
.hg
404.php
archive.php
archives.php
comments.php
footer.php
functions.php
header.php
html5.js
image.php
index.php
license.txt
links.php
page.php
readme.txt
screenshot.png
search.php
sidebar.php
single.php
style.css
測試
>hg locate "set:grep(html5)\.php"
hg: parse error at 11: invalid token
>hg locate "set:grep(html5)"
header.php
readme.txt
注:發現文件,其中有文字 「HTML5」 在裏面,但不是文件 html5.js
>hg locate "set:s[a-z]+\.php"
abort: \.php not under root
>hg locate "set:s[a-z]+.php"
>hg locate "set:s[a-z]+"
hg: parse error at 7: not a prefix: end
>hg locate "set:s\w+"
hg: parse error at 4: not a prefix: end
所有的測試與set:
前綴和正則表達式失敗
不同的水珠圖案與集:
>hg locate "set:s**.php"
search.php
sidebar.php
single.php
>hg locate "set:s**.*"
screenshot.png
search.php
sidebar.php
single.php
style.css
>hg locate "set:s**e.*"
single.php
style.css
正則表達式圖案在文件集
>hg locate "re:s[a-z]+.php"
search.php
sidebar.php
single.php
>hg locate "re:s[a-z]+."
screenshot.png
search.php
sidebar.php
single.php
style.css
恢復
hg forget "re:Com\.Example\.DomainModel[0-9]+\.somefileextension$"
或
hg forget "set:Com.Example.DomainModel**.somefileextension"
和同一組到hgignore
不幸的是,我只關心hgignore,並沒有測試文件代碼,另一方面,正則表達式在我的基本測試中工作。感謝您的跟進。 –
Perfe ct,謝謝Ry4an。 –
太寬正則表達式,並對不起,grep()驗證內容,而不是文件名(AFAIK) –
@LazyBadger我構建了正則表達式來匹配askers glob - 我同意我會使用一個更窄的自己。你對grep()有點尷尬。 –