3

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

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

在将代码传输给他们之前,我需要清理代码库中的所有机密数据。但它们都在历史中(变更集)。使用 Mercurial,我怎样才能清除这些秘密?

4

1 回答 1

7

如果您只给客户一个快照,您可以在运行后进行hg archive

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

在这种情况下,您最好让 AWS 密钥失效并在未来使用新的密钥——亚马逊让这变得非常容易。

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

于 2012-05-13T17:57:58.643 回答