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

Fan*_*Lin 3 mercurial history changeset

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

# settings of Amazon S3 storage
s3.storages:
    access_key: <secret>
    secret_key: <secret>
Run Code Online (Sandbox Code Playgroud)

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

Ry4*_*ase 7

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

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

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

展望未来,最好不要将这些密钥放入源代码管理中.而是放入一个config.sample文件然后添加config.actual顶部你的.hgignore.