¿Cómo puedo poner mi configuración personal de Windows bajo control de versiones ?
Resumen (detalles y ejemplos a continuación):
- Configuración personal (por ejemplo, preferencias de escritorio), no configuración del sistema (por ejemplo, controladores); debería funcionar sin derechos de administrador
- Control de versiones, no copias de seguridad o imágenes de disco
Aquí hay algunas cosas que quiero poder hacer:
- Confirmar el estado actual de mi configuración en un repositorio, preferiblemente con cierta granularidad (si he realizado dos cambios, me gustaría poder confirmar uno sin confirmar el otro).
- Escriba una entrada de registro de cambios cada vez que confirme y vea la lista de entradas de registro de cambios para cada archivo de configuración.
- Vea las diferencias entre el estado actual y una versión de repositorio.
- Echa un vistazo a mi repositorio en una nueva máquina con Windows y reproduce mi configuración (al menos si la nueva máquina tiene la misma versión de Windows).
<added1> No intentaré dar una definición completamente precisa de "configuración"; Estoy tratando de cubrir todo tipo de preferencias personales (por ejemplo, cualquier cosa configurable en el panel de control sin derechos de administrador, accesos directos en el menú "Programas" específico de mi usuario, ...). No quiero incluir mis documentos o aplicaciones instaladas. </added1>
<added2> Tenga en cuenta que estoy apuntando a mi configuración personal, no a la configuración del sistema (eso también sería útil, pero no es el propósito de esta pregunta). Por ejemplo, espero que una solución funcione sin derechos de administrador. </added1>
Lo que hago en Unix es poner (una selección de) mis archivos de puntos bajo control de versiones . En Windows, supongo que debería confirmar el registro y algunos archivos (¿qué?) En Application Data
. Me gustaría algo mejor que poner todo el archivo de registro bajo control de versiones (eso no es suficiente granularidad, y me temo que hay problemas de bloqueo). <added1> Idealmente, usaría wrappers o scripts con algún software de control de versiones común (Bazaar, CVS, Darcs, Git, Mercurial, Subversion, ...), pero eso no es un requisito absoluto. </added1>
Actualmente necesito trabajar con Windows 2000 y Windows XP. Como esto es para una máquina de trabajo, el software de pago no funcionará (el código abierto sería ideal). Me siento más cómodo con la línea de comandos que con las GUI.
<added1> Aquí hay un flujo de trabajo de muestra:
- Un día decido que quiero que el fondo de mi escritorio sea rosado. Entonces hago el cambio a través de la GUI. Esto modifica una
línea en unaclave dearchivo de configuraciónen el registro. Luego cometo el cambio, para seguirlo. - Más tarde me pregunto por qué mi fondo de escritorio es rosa. Entonces busco "color de escritorio" en el registro de cambios.
- Un día necesito usar una nueva máquina. Así que salgo de mi repositorio de configuración, y voilà, escritorio rosa.
Aquí hay algunas cosas que no estoy tratando de hacer:
No estoy tratando de hacer copias de seguridad. Quiero poder rastrear los cambios (por semántica, o al menos sintaxis, no solo por fecha), y compartir información entre máquinas (un repositorio, múltiples pagos).
No estoy tratando de replicar una instalación de Windows. No quiero transferir dependencias de hardware, aplicaciones instaladas o documentos.
</added1>