Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial——基于其他文件的存在而忽略某些文件_Mercurial - Fatal编程技术网

Mercurial——基于其他文件的存在而忽略某些文件

Mercurial——基于其他文件的存在而忽略某些文件,mercurial,Mercurial,我使用mercurial跟踪一个存储库,该存储库包含PDF文件(由其他人生成,我需要跟踪),以及由我编写的latex文件 例如,假设目录结构如下: root - Requirements.pdf - MyReport.tex - MyReport.pdf 在这种情况下,MyReport.pdf会在MyReport.tex每次更改时进行更改,并且可以完全由tex文件的内容确定,因此它不应处于版本控制之下 我正在寻找一种方法,告诉mercurial忽略这些文件。显然,我可以像这样向.hgig

我使用mercurial跟踪一个存储库,该存储库包含PDF文件(由其他人生成,我需要跟踪),以及由我编写的latex文件

例如,假设目录结构如下:

root
-  Requirements.pdf
-  MyReport.tex
-  MyReport.pdf
在这种情况下,MyReport.pdf会在MyReport.tex每次更改时进行更改,并且可以完全由tex文件的内容确定,因此它不应处于版本控制之下

我正在寻找一种方法,告诉mercurial忽略这些文件。显然,我可以像这样向
.hgignore
添加规则()

但这将忽略我确实需要保持版本控制的PDF

还有一个链接:但这也不能真正解决我的问题,因为虽然它负责构建PDF,但它不负责告诉
hg
哪些文件是重要的

或者我可以手动完成,但我想用一种方法来编写脚本,使其更通用,因为这些存储库可能有几十个tex和pdf文件,手动管理这些文件变得很麻烦


这似乎是一条非常简单的规则:如果有一个名为“blah.pdf”的文件,请检查是否也有一个名为“blah.tex”的文件,如果是,请忽略它,否则请注意它。但是我找不到这方面的任何东西。

Mercurial和Git中都没有这样的功能,也不可能有这样的功能,因为它非常适合使用。但是,您可以考虑简单地将“生成的”文件放入单独的输出子目录中,然后忽略所有这样的目录。例如,如果您有一个类似于
foo/bar.tex
的输入,那么输出可能是
foo/gen/bar.tex
,您可以忽略
gen/

显然,我可以像这样给.hg添加一条规则 () ... 但那会 忽略我确实需要保持版本控制的PDF

.hgignore忽略所有新添加或现有的未版本化的文件,匹配模式,但粗体文本至少提供两种可用解决方案:

  • 写regexp,意思是“所有pdf文件,除了一些文件名”(很可能是手动添加的文件名)
  • 使用宽模式,但将所需文件显式添加到存储库中(
    hgaddfilename

  • 是的,没错。我的意思是默认情况下会忽略所有PDF,但我可以手动添加我关心的PDF。这就是我到目前为止一直使用的方法。看起来我可能需要写一个扩展来完成我想做的事情。
    syntax: glob
    *.pdf