Should I version-control my entire Documents folder as a single repository?
Eu sugeriria strongmente uma abordagem de repositório por projeto (Assumindo que os projetos sejam independentes uns dos outros).
Pense nisso da seguinte forma: se você for olhar para uma versão de 3 meses atrás de algum projeto - você também deseja obter todos os outros projetos para a mesma data? Quando você quiser ver todas as alterações feitas desde o último commit - você faria isso em um projeto ou em todo o diretório Documents [1]?
Você não deve dividir mais do que o nível do projeto: Mantenha seus subdiretórios atuais como diretórios em cada repo. Dessa forma, um único commit pode conter, por exemplo, uma alteração em um arquivo de rascunho, a introdução de um novo back-story para algum personagem e uma atualização do arquivo de biografia do mesmo personagem, com este novo back-story detalhado nele. . Mais tarde, se você quiser remover ("reverter") essa história, você terá um único commit com tudo já vinculado.
Essa capacidade de manter juntas alterações logicamente relacionadas a muitos arquivos (com um comentário extra explicando a alteração) é provavelmente o argumento mais importante que tenho para usar um controle de versão para um único usuário (em um simples backup baseado em data) ). Mais tarde, quando vejo algo estranho e me pergunto "O que eu estava pensando", é uma pergunta muito fácil de responder.
Mais alguns comentários sobre coisas que você não perguntou:
-
Ramificação - você pode achar isso útil para "testar o jogo" uma ideia - não sei como isso é comum por escrito. Na programação, eu poderia tentar algo que leva muitos commits, e não ter certeza de que funcionaria - então, explicitamente, o branch se sente "mais seguro" do que ter que voltar ao tempo em que eu acho que comecei.
-
Git (e presumivelmente Mercurial) são principalmente projetados para código-fonte; Eles geralmente comparam arquivos em uma base de linha, o que provavelmente significa parágrafos inteiros para você. Mais importante, se os arquivos não forem de texto simples (por exemplo, se você usar o Word), configurá-los para "entender" as alterações feitas será muito difícil e, em alguns casos, poderá ser impossível. Se o seu sistema de controle de versão não puder ver as alterações feitas, você perderá muitos dos seus benefícios.
[1] Você pode realmente fazer isso por subdiretório, mesmo se você usar um único repo para tudo, e não é muito mais trabalho; Mas se você sempre fizer isso, mantenha-os separados.