Administrar el directory personal en varias máquinas con algunas diferencias?

Así que tengo una configuration bastante personalizada de files punto en este punto, y he estado buscando una solución para mantener las cosas sincronizadas de máquina a máquina. Me gusta la idea de tener un directory ~ / dotfiles (o similar) que contenga un file MAKE que maneje la creación de enlaces simbólicos. Mueva el dir de los files de puntos de máquina a máquina a través de rsync / unison / dvcs / lo que sea, y estoy listo para continuar.

El problema con esto ocurre porque los files difieren ligeramente en algunas máquinas, y me gustaría una forma de seguir esto. Por ejemplo, mi .xmobarrc (una aplicación de panel para aquellos que no están familiarizados), tiene una configuration para mostrar la duración de la batería en mi computadora portátil, pero no en mi escritorio.

¿Cuál es la mejor forma de administrar files con diferencias de máquina como esta, de modo que si cambio en una máquina algo que debería afectar a todas las máquinas, puedo fusionarme de nuevo, y si cambio en una máquina que no debería getse? fusionado, no lo hará. Obviamente, un DVCS como git es necesario para esto en lugar de rsync / unison / etc, pero no estoy seguro de cómo configurarlo.

¿Rama maestra con una twig por máquina que fusiono / rebase / selección de cereza hacia adelante y hacia atrás? Esto parece un poco tedioso. ¿Hay una mejor manera?

Una forma sería tener:

  • una configuration global con todos los parameters globales (si la cambia y la combina de nuevo, afectaría a todas las máquinas)
  • un file de configuration por máquina (nombrado por ejemplo después de la máquina)
  • una secuencia de commands que crea su file de configuration final como la composition de la global y la basada en la máquina.

Teniendo en count las fusiones:

  • Cuando fusiona files de configuration de una twig a otra, puede fusionar todo (no se requiere selección)
  • O no siempre tiene que tener una sucursal por máquina, ya que los files de configuration basados ​​en la máquina ya aseguran la separación y el aislamiento de esos parameters (en diferentes files en lugar de diferentes twigs)