Sé que este es un hilo antiguo pero lo encontré mientras buscaba algunos archivos punto.
Mi sistema actual está utilizando la subversión. La clave que hice fue verificar la copia de trabajo en ~/.svnhome/(en retrospectiva debería haberlo llamado .dotfiles o algo más genérico). Luego creo enlaces simbólicos a los archivos que uso en esa computadora en casa. Por ejemplo, mis carpetas .procmail y .spamassassin solo son necesarias en el servidor de correo, por lo que no las enlace en mi servidor doméstico.
El único archivo que tiene algunas diferencias es que el archivo .bashrc tiene algunas líneas adicionales en mi mac para macports. Entonces en la parte inferior de .bashrc lo tengo verificar si .bashrc_local existe y analiza eso.
Esto es lo último que me queda usando subversion (todo lo demás está usando git aparte del trabajo). El beneficio de svn es porque no es un dvcs, así que no tengo que preocuparme por comprometerme accidentalmente en un servidor y olvidarme de presionarlo.
He considerado moverlo a git para poder crear ramas. Usando el ejemplo anterior, tendría una rama para mi servidor principal que agregaría las carpetas .procmail y .spamassassin, pero no las tendría en la rama principal. Pero el sistema actual funcionó bien durante años, incluso antes de que existiera, y no tiene ninguna motivación particular para cambiarlo ahora.
¡Gracias por el consejo sobre Unison! Pensé que VCS era lo que necesitaba, pero en realidad no me importa el control de versiones, solo la sincronización, así que Unison es mucho mejor. Además, tener (por ejemplo) cajas de bazar dentro de un directorio de inicio con versiones bazaar parece problemático. – Patrick