如何清理mercurial变更集中的机密数据?

时间:2012-05-13 02:39:33

标签: mercurial history changeset

我想出售我的系统副本,需要将源代码传输给我的客户。我使用Mercurial作为VCS。我的代码中有一些机密数据。例如,Amazon访问密钥/ secert密钥,数据库密码和ssl私钥。这些密钥写在代码或配置文件中,如下所示:

# settings of Amazon S3 storage
s3.storages:
    access_key: <secret>
    secret_key: <secret>

在我将代码传输给他们之前,我需要清除代码库中的所有机密数据。但所有这些都在历史上(变更集)。有了Mercurial,我该如何清理这些秘密?

1 个答案:

答案 0 :(得分:7)

如果您只向客户提供快照,则可以在运行hg archive后执行此操作。

如果您想让他们访问具有完整历史记录的存储库,您需要使用hg convert来排除该文件。

在这种情况下,您可能最好只是使AWS密钥失效并在将来使用新密钥 - 亚马逊使这一点非常简单。

展望未来,最好不要将这些密钥放入源代码管理中。而是放入config.sample文件,然后在config.actual上添加.hgignore