He estado haciendo esto por un tiempo solo usando git. No sigo todo el directorio de inicio, solo las partes que estoy cambiando activamente. Esto incluye mi directorio home / bin, que contiene muchos pequeños scripts, mi directorio .vim y algunos proyectos más grandes en otros directorios. También hay algunas configuraciones para terminales y openbox, así como varias otras aplicaciones, agregadas al repositorio.
Esto funciona bastante bien ya que todo esto tiene el mismo conjunto de permisos y no me importa la marca de tiempo original. Está llegando al punto en el que estoy planeando dividir algunos de ellos en submódulos usando git filter-branch
. Sin embargo, esto es un poco complicado ya que hay interdependencias entre archivos en diferentes subdirectorios (por ejemplo, algunos scripts .vim pueden llamar scripts desde mi directorio bin ... no es un muy buen ejemplo, pero espero que entiendan).
No he encontrado soluciones más completas, pero tampoco he investigado ninguna, incluido git-home-history. Parece que sería bastante complicado poner todo el directorio de inicio bajo control de revisión, y habría muchas variables. Por ejemplo, si pones tu (s) perfil (es) de Firefox bajo control de revisión, terminarás acumulando grandes cantidades de diferenciales binarios. También hay cosas como las claves ssh que a menudo se pierden mejor que las duplicadas.
Si desea rastrear los permisos (aparte del bit ejecutable, que git ya rastrea), aparentemente hay un gancho que lo hará. Se menciona en este hilo predeterminado del servidor .