加密在提交时添加到Mercurial存储库的文件

时间:2010-09-21 18:16:22

标签: encryption mercurial configuration-files repository

在阅读了this过去的git问题之后,我想问一下是否存在这样的问题,但是

  1. 可以在每台机器上以编程方式(文件列表)完成;
  2. 适用于Mercurial。
  3. 这样做的原因是我希望在我的公共dotfiles存储库中包含一些以明文形式存储密码的配置文件。我知道我可以为hg(1)编写一个环绕式脚本,但我想知道是否有其他方法,只是为了好奇。

    谢谢。

2 个答案:

答案 0 :(得分:4)

您可以根据需要使用一对pre-commitpost-update挂钩来加密/解密。有关详细信息,请参阅http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html

然而,值得指出的是,如果你在你的仓库中存储加密文本,你将无法创建有意义的差异 - 基本上所有东西都会像二进制文件一样但也难以压缩。

答案 1 :(得分:2)

Mercurial有一个filter system,允许您在从存储库中读取文件或将其写回时破坏文件。如果您运行的SSH代理程序允许您进行非交互式加密和解密,那么这可能是可行的。

正如Ryan所指出的,这必然会导致更大的存储库,因为文件的每个加密版本看起来都与以前的版本完全不同。 Mercurial检测到这一点并存储未压缩的版本(无论如何都无法压缩加密文件)。由于您将此用于dotfiles,因此可以忽略空间开销,但如果您要以加密形式对较大的文件进行版本控制,则需要考虑这一点。

请根据您的经验向Mercurial mailing list发送邮件,以便其他用户也可以从中受益。

相关问题