Вы должны вывести всю конфиденциальную информацию в специальный файл свойств.Этот файл должен быть исключен из системы контроля версий.Большинство (если не все) системы контроля версий позволят вам пометить файл как не версионный.Я не знаю конкретно о Hg, но, похоже, .hgignore .
Все системы контроля версий особенно раздражают, когда дело доходит до удаления информации из хранилища.Мы могли почти думать, что они были созданы для записи полной истории проекта ;-) Так что будьте готовы изменить свой ключ API, как только он будет принят по ошибке (не то, чтобы я когда-либо делал что-то подобное).
Редактировать , как мне кажется, не совсем понятно:
Самая важная часть - четко отделить конфиденциальную информацию от стандартной информации.У вас должен быть один файл, который содержит конфиденциальную и только конфиденциальную информацию.Затем пометьте этот файл как «не версионный».Если вы этого не сделаете, вы всегда будете в конечном итоге передать вашу конфиденциальную информацию.И как только они исчезнут, их практически невозможно заставить исчезнуть.
Еще один способ - зашифровать конфиденциальные данные, зафиксировать зашифрованные данные и иметь ключ дешифрования, присутствующий только на сервере (или на другом сервере).тщательно контролируемое местоположение, вдали от вашей системы контроля версий).На самом деле мы используем это решение в частном банке, где я работаю, чтобы у разработчиков не было доступа к паролям производственных систем.