INS*_*INS 11 regex mercurial dvcs hgignore
我有一个我似乎无法理解的问题.我在Windows上使用TortoiseHg(版本0.7.5)但在Linux上我遇到了同样的问题.这里是:
我的.hgignore
档案:
syntax: regexp
^[^\\/]+$
Run Code Online (Sandbox Code Playgroud)
我想要实现的是将忽略列表中的文件添加到hg存储库的根目录中.
例如,如果我有这样的:
.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2
.hgignore
Run Code Online (Sandbox Code Playgroud)
我希望忽略myfile1(2)和anotherfile1(2)(名称仅用于此示例的目的 - 它们没有可以轻松放入hgignore文件的简单规则)
有没有我缺少的东西,因为我很确定regexp是好的(我甚至测试过它)?想法?
有没有更简单的方法来实现这一目标?[添加到mercurial存储库根目录中的忽略列表文件]
Mar*_*ler 11
我#mercurial
在irc.freenode.net上转发了这个问题,响应是你无法区分文件和目录 - 目录是匹配的,没有你在正则表达式中搜索的斜杠.
但是,如果你可以假设你的目录永远不会包含一个句号.
,但是你的文件会,那么这样的东西似乎有效:
^[^/]*\..*$
我在这样的存储库中测试了它:
% hg status -ui ? a.txt ? bbb ? foo/x.txt ? foo/yyy
添加.hgignore
文件给出:
% hg status -ui ? bbb ? foo/x.txt ? foo/yyy I .hgignore I a.txt
表示a.txt
在根目录中正确忽略了该文件,但x.txt
在foo
子目录中没有.您还可以看到不会忽略bbb
在根目录中命名的文件.但也许您可以自己将这些文件添加到文件中..hgignore
如果碰巧bar.baz
在根目录中有一个目录,那么将忽略此目录及其中的所有文件.我希望这能有所帮助.
这是一个肮脏的把戏:
在目录中创建一个空文件".hidden",而不是添加到.hgignore:
^mydir/(?!\.hidden).+$
Run Code Online (Sandbox Code Playgroud)
这将忽略除".hidden"之外的目录中的所有文件.