¿Cómo se mantiene la información confidencial (por ejemplo, passwords de testing) fuera del control de la versión?

Algunos de mis progtwigs requieren algunos datos confidenciales (principalmente authentication) para funcionar correctamente. A menudo pongo mis propias cnetworkingenciales en el main() del código fuente cuando desarrollo y pruebo para ver si mi código funciona, y las elimino cuando todo está bien. Sin embargo, es fácil olvidarse de eliminarlos.

¿Cuál es un buen enfoque para evitar que estos datos confidenciales terminen en una confirmación de control de versión?

Yo uso Mercurial (y Python).

He estado pensando en:

  • ejecución automática de algunas secuencias de commands de comprobación de datos confidenciales en la confirmación, que se cancela si encuentra algunas cadenas específicas (no parece infalible, requiere mantener las cadenas sensibles)
  • almacenar los datos confidenciales en otro lugar (¿dónde ?, ¿cómo importarlos / usarlos de manera práctica?).
  • usando una twig de testing (pero realmente no resuelve el problema)
  • proporcionando los datos confidenciales como arguments de línea de command (demasiado poco prácticos)

Ponga cosas como datos de authentication en un file de configuration, luego agregue ese file de configuration al set de files ignorados en su VCS (en Mercurial, eso es .hgignore ).