开发者

Hg Regexp Syntax Not Working as Expected

Here's my file/fold开发者_如何学运维er structure:

Code/.hg

Code/.hgignore

Code/CASH/readme.txt

Code/CASH/bin/FTI/abc.dll

I'm trying to create a regular expression in my .hgignore file that will ignore everything below the CASH folder except for everything in the /bin/FTI folder.

Here's my .hgignore file that doesn't work:

syntax: regexp
CASH/(?!bin/FTI/).*

This ends up ignoring everything in the CASH folder, including the /bin/abc.dll file that I'd like to not ignore.

Any ideas?


This isn't exactly the answer you're looking for, but the reason Mercurial doesn't have decent syntax for "everything except" in .hgignore files (zero width look ahead regular expressions weren't the plan) is because hg add overrides .hgignore.

You can have a .hgignore file with just this in it:

^CASH/

and then do a one-time hg add CASH/bin/FTI/** and you'll be tracking all future changes to all the files that already exist in that directory.

Sure, if a new binary shows up in CASH/bin/FTI you'll have to remember to add it, but changes to those already added won't require any extra action. Unless binaries with new names are a regular occurrence this is the more common setup.


glob may easier in this case. If using regexp, how about:

syntax: regexp
CASH/(?!bin)
CASH/bin/(?!FTI)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜