我使用mercurial来跟踪包含PDF文件(由其他人生成,我需要跟踪)的存储库,以及由我编写的乳胶文件。
例如,假设一个像这样的目录结构:
root
- Requirements.pdf
- MyReport.tex
- MyReport.pdf
在这种情况下,MyReport.pdf每次都会更改MyReport.tex,并且可以完全由tex文件的内容决定,因此它不应该受版本控制。
我正在寻找一种方法来告诉mercurial忽略这些文件。显然,我可以像http://www.selenic.com/mercurial/hgignore.5.html)
一样向.hgignore
添加规则
syntax: glob
*.pdf
但这会忽略我做需要保持版本控制的PDF。
还有这个链接:https://www.mercurial-scm.org/wiki/TipsAndTricks#Avoid_merging_autogenerated_.28binary.29_files_.28PDF.29但这并没有真正解决我的问题,因为它处理构建PDF时,它不会处理告诉hg
哪些文件很重要。
或者我可以手动执行此操作,但我想要一种编写脚本的方法,使其更通用,因为这些存储库可以有几十个tex和pdf文件并且手动管理这已经变得很麻烦。
这似乎是一个非常简单的规则:如果有一个名为“blah.pdf”的文件,请检查是否还有文件名“blah.tex”,若然,请忽略它,否则,注意它。但我找不到任何相关的东西。
答案 0 :(得分:1)
Mercurial和Git都没有这样的功能,也不会有这样的功能,因为它非常适合。但是,您可以考虑将“生成的”文件放入单独的输出子目录中,然后忽略所有此类目录。例如,如果您有foo/bar.tex
之类的输入,则输出可能为foo/gen/bar.tex
,您可以忽略gen/
。
答案 1 :(得分:1)
显然我可以像这样向.hgignore添加规则 (http://www.selenic.com/mercurial/hgignore.5.html)......但那会 忽略我需要保持版本控制的PDF。
.hgignore会忽略所有新添加或现有的非版本化文件,匹配模式,但粗体文本会为您提供至少两个可用的解决方案:
hg add FILENAME
)