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