Как очистить конфиденциальные данные в наборах изменений mercurial?

Я хочу продать копию своей системы и передать исходный код своим клиентам. Я использую Mercurial в качестве VCS. В моем коде есть некоторые конфиденциальные данные. Например, ключ доступа/секретный ключ Amazon, пароли базы данных и закрытые ключи ssl. Эти ключи прописаны в коде или файлах конфигурации, например:

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

Прежде чем я передам им свой код, мне нужно очистить все эти конфиденциальные данные в кодовой базе. Но все они есть в истории (changesets). С Mercurial, как я могу очистить этот секрет?


person Fang-Pen Lin    schedule 13.05.2012    source источник


Ответы (1)


Если вы предоставляете клиентам только моментальный снимок, вы можете сделать это после запуска hg archive.

Если вы хотите предоставить им доступ к репозиторию с полной историей, вам нужно использовать hg convert, чтобы исключить этот файл.

В этом случае вам, вероятно, лучше просто аннулировать ключ AWS и использовать новый в будущем — Amazon делает это очень просто.

В будущем вам лучше не помещать эти ключи в систему управления версиями. Вместо этого поместите файл config.sample, а затем добавьте config.actual поверх .hgignore.

person Ry4an Brase    schedule 13.05.2012