当前位置: 首页 > 知识库问答 >
问题:

汞的hgignore regex匹配文件夹及其子文件夹中的特定文件名

南门正祥
2023-03-14

我的Mercurial文件夹结构如下,“temp”位于文件夹的根目录中。

temp
|   1world
|   world
|   world.txt
|           
+---sub1
|       1world
|       world
|       world.txt
|       
+---sub2
+---sub3
|       misc.txt
|       other
|       otherfile.txt
|       
\---sub4
        world

我想忽略临时文件夹及其子文件夹中的所有内容,除了名为“世界”的文件(只有“世界”而不是“1world”或“world.txt”等)

使用. hgignore中的语法:regexp,我可以匹配temp

任何指导都将不胜感激!


更新

通过手动列出每个文件夹,我成功地获得了想要的结果:

^temp/(?!world$|sub1|sub2|sub3|sub4)
^temp/sub1/(?!world$)
^temp/sub2/(?!world$)
^temp/sub3/(?!world$)
^temp/sub4/(?!world$)

然而,我更希望我能用一个模式匹配所有子文件夹中的世界,因为很容易忘记更新。HG当事情发生变化时忽略。

共有1个答案

符修杰
2023-03-14

如果您无论如何都必须列出所有文件夹,您应该将.放在您的. hgignore中,这意味着忽略所有内容,然后hg添加您想要的world文件。

. hgignore的存在只是为了影响您在执行hg status时看到的未添加文件,但是如果您必须为您不想忽略的每个文件添加一个条目,那么您将看不到您无论如何都需要添加的world文件。因此,只需添加path_to_new_folder/world即可,而不是在您的. hgignore中添加另一行。

一旦添加了文件. hgignore对其根本没有影响。

因此,从一开始,过程就是:

echo . > `.hgignore   # create a new hgignore file with just a single got in it
hg add **/world       # add all the files named exactly world
hg commit             # commit those world files

现在,您仍然可能忘记再次运行hg add**/world,从而忘记添加新的world文件,但至少这比必须记住向您的中添加另一个异常要容易得多。hgignore(忽略)。

 类似资料:
  • 我正在寻找一种方法来获取zip文件中的文件列表。我创建了一个方法来获取目录中的文件列表,但我也在寻找一种方法来获取zip文件中的文件,而不是只显示zip文件。 以下是我的方法:

  • 问题内容: 我对Swift编程非常陌生,并且正在尝试遍历文件夹中的文件。我在这里查看了答案,并尝试将其转换为Swift语法,但未成功。 我得到的错误是: 我的目的是查看主文件夹中包含的所有子文件夹和文件,并找到所有具有特定扩展名的文件,然后对它们进行处理。 问题答案: 使用以下方法:

  • 问题内容: 我如何返回一个包含该文件夹中的所有文件以及子文件夹的文件数组,我的方法仅适用于该文件夹,并且不包括子文件夹。 问题答案: 使用您当前的代码,进行以下调整:

  • Inno Setup:动态添加文件夹中的所有文件并添加组件标签,因此在运行设置期间,用户可以选择自定义设置并选择要复制的文件。 我想创建一个Inno安装文件,将抓取文件夹中的文件,用户可以放在那里,而不必每次添加新文件时修改Inno安装文件。同时,我需要安装文件的用户能够选择要复制的文件。 如果我做了这样的事情: 自定义设置仅显示复制或不复制整个文件夹的选项。

  • 我尝试搜索一个命令,该命令可以使用命令提示符命令列出目录中的所有文件以及子文件夹。我已经阅读了“dir”命令的帮助,但找不到我要查找的内容。请帮助我什么命令可以得到这个。

  • 我在文件中有这一行: 哪个包文件夹< code>Tcl。但是它只获取文件夹中的文件,而不获取< code>Tcl中的子文件夹。有没有办法把整个文件夹< code>Tcl连同所有子文件夹和文件?(不逐行列出所有子文件夹)。 Inno设置5.4.2。