我想出售我的系统副本,需要将源代码传输给我的客户。我使用Mercurial作为VCS。我的代码中有一些机密数据。例如,Amazon访问密钥/ secert密钥,数据库密码和ssl私钥。这些密钥写在代码或配置文件中,如下所示:
# settings of Amazon S3 storage
s3.storages:
access_key: <secret>
secret_key: <secret>
在我将代码传输给他们之前,我需要清除代码库中的所有机密数据。但所有这些都在历史上(变更集)。有了Mercurial,我该如何清理这些秘密?
答案 0 :(得分:7)
如果您只向客户提供快照,则可以在运行hg archive
后执行此操作。
如果您想让他们访问具有完整历史记录的存储库,您需要使用hg convert
来排除该文件。
在这种情况下,您可能最好只是使AWS密钥失效并在将来使用新密钥 - 亚马逊使这一点非常简单。
展望未来,最好不要将这些密钥放入源代码管理中。而是放入config.sample
文件,然后在config.actual
上添加.hgignore
。