2012-05-13 19 views
3

我想銷售我的系統的副本,並需要將源代碼傳輸給我的客戶。我使用Mercurial作爲VCS。我的代碼中有一些機密數據。例如,Amazon訪問密鑰/ secert密鑰,數據庫密碼和ssl私鑰。這些鍵都寫在代碼或配置文件,如:如何清理mercurial變更集中的機密數據?

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

之前我我的代碼轉移到他們,我需要清理代碼庫中所有的機密數據。但他們都在歷史(變更集)。用Mercurial,我該如何清除這些祕密?

回答

7

如果您僅向客戶提供快照,則可以在運行hg archive後執行此操作。

如果您想讓他們訪問具有完整歷史記錄的存儲庫,則需要使用hg convert來排除該文件。

在這種情況下,您可能更好的辦法就是讓AWS密鑰失效並在未來使用新密鑰 - 亞馬遜使這非常簡單。

展望未來,最好不要將這些密鑰放入源代碼管理中。取而代之的是輸入config.sample文件,然後在.hgignore的頂部添加config.actual