Eu tenho feito isso por um tempo apenas usando o git. Não acompanho o diretório pessoal inteiro, apenas as partes que estou alterando ativamente. Isso inclui meu diretório home / bin, que contém muitos pequenos scripts, meu diretório .vim e alguns projetos maiores em outros diretórios. Também existem algumas configurações para terminais e openbox, bem como vários outros aplicativos, adicionados ao repositório.
Isso funciona bem, já que todas essas coisas têm o mesmo conjunto de permissões e eu não me importo com o timestamp original. Está chegando ao ponto em que estou planejando dividir alguns deles em submódulos usando git filter-branch
. Isso é um pouco complicado, já que há interdependências entre arquivos em subdiretórios diferentes (por exemplo, alguns scripts .vim podem chamar scripts do meu diretório bin ... não é um bom exemplo, mas espero que você entenda o assunto).
Eu não encontrei nenhuma solução mais abrangente, mas também não procurei em nenhuma, incluindo git-home-history. Parece que seria muito complicado colocar todo o diretório home sob controle de revisão, e haveria muitas variáveis. Por exemplo, se você colocar o (s) seu (s) perfil (is) do firefox sob controle de revisão, você acabará acumulando grandes quantidades de diferenciais binários. Também existem coisas como chaves ssh que são frequentemente melhor perdidas do que duplicadas.
Se você quiser rastrear as permissões (além do bit executável, que git já rastreia), aparentemente existe uma gancho que fará isso. É mencionado em este thread de falha do servidor .