如何在 mercurial 中处理不需要版本控制的文件

如何在 mercurial 中处理不需要版本控制的文件

我是 mercurial 的新手,大部分时候使用 .csv 和/或 .sqlite 文件在 R 中制作 LaTeX 报告和统计计算。关于 LaTeX,我真正关心的只是 .tex 文件。关于 R,我不需要对 .csv 或 .sqlite 文件进行版本控制,因为它们是静态的。

当我对包含 .csv 和/或 .sqlite 文件的 repo 执行“hg add”时,收到如下警告:

rev2.sqlite: up to 3070 MB of RAM may be required to manage this file
(use 'hg revert rev2.sqlite' to cancel pending addition)

因此我恢复并随后使用类似 的添加hg add -X *.sqlite。我想我确实有两个问题:

(1)我应该忽略这些警告吗?因为这些大文件是静态的,我是否可以只将其添加到 repo 中,因为我知道 diff 文件将始终为空,而不必担心浪费资源?

(2) 如果我应该继续从存储库中排除这些文件,我有什么办法可以修复此选项?例如,在我的 .hgrc 文件中添加一些始终附加选项的内容,例如-I *.tex -I *.R我的“hg add”命令?

谢谢!

答案1

在〜/ .hgrc中:

[ui]
ignore = ~/.hgignore

在〜/ .hgignore中:

syntax: glob
*.tex
*.R

(您还可以在每个项目中放置一个 .hgignore 文件;上述操作将全局执行。您可以将 .hgrc 中引用的 .hgignorefile 命名为任何您想要的名称;在项目中,它应该始终被称为 .hgignore)

答案2

您可以创建一个 .hgignore 文件以始终忽略某些文件,请参阅这个问题。您可以阅读.hgignore 的 Mercurial 维基页面或者手册页了解更多信息。

您可能希望使用像这样的 .hgignore 来忽略任何.sqlite文件.csv

\.sqlite$
\.csv

答案3

如果你不想手动将大型 sqlite 文件复制到你的仓库的所有实例中,你可能需要使用Hg 大文件扩展

它将独立保存文件并根据校验和比较进行非常粗略(但资源高效)的版本控制。其他不支持 Hg 的扩展大文件折断也可用。

BigFiles 要求您手动指定大文件的备用存储库,Snap 仅适用于某些版本的 hg。对于 largefiles 也是如此,它仅适用于 hg 2.0 及更高版本。如果您使用多个不同版本,则可能必须使用档案扩大

相关内容