Comment suivre $ HOME avec git

10

Je voudrais suivre mon répertoire $ HOME avec git. J'ai de nombreux autres git repos dans d'autres sous-répertoires (par exemple $ HOME / projects / repo_1 et ainsi de suite), qui ne devraient pas être suivis, car ils le sont déjà.

J'ai trouvé git-home-history mais il ressort des archives que le projet n'est plus activement développé.

Quelle approche recommandez-vous? Ghh est-il assez mature?

Je suis sur un Mac mais je suis également intéressé par les solutions multi-plateformes.

Merci

ps: J'ai regardé mais je n'ai pas trouvé de doublons, veuillez les signaler si cela a déjà été discuté.

Francesco
la source

Réponses:

5

Cela fait un moment que j'utilise git. Je ne surveille pas l'intégralité du répertoire personnel, seulement les parties que je modifie activement. Cela inclut mon répertoire home / bin, qui contient de nombreux petits scripts, mon répertoire .vim et quelques projets plus importants dans d'autres répertoires. Il existe également des configurations pour les terminaux et openbox, ainsi que diverses autres applications, ajoutées au dépôt.

Cela fonctionne assez bien car tous ces trucs ont le même jeu d'autorisations et je ne me soucie pas de l'horodatage d'origine. Il en est au point où je prévois d'en décomposer une partie en sous-modules en utilisant git filter-branch. C'est un peu délicat cependant car il existe des interdépendances entre les fichiers dans différents sous-répertoires (par exemple, certains scripts .vim peuvent appeler des scripts à partir de mon répertoire bin ... pas un très bon exemple mais j'espère que vous obtenez le point).

Je n'ai pas trouvé de solutions plus complètes, mais je n'en ai pas vraiment examiné non plus, y compris git-home-history. Il semble que ce serait assez compliqué de mettre tout le répertoire personnel sous contrôle de révision, et il y aurait beaucoup de variables. Par exemple, si vous mettez vos profils firefox sous contrôle de révision, vous allez finir par accumuler d'énormes quantités de différentiels binaires. Il y a aussi des choses comme les clés ssh qui sont souvent mieux perdues que dupliquées.

Si vous voulez suivre les autorisations (autres que le bit exécutable, que git suit déjà), il y a apparemment un hook qui le fera. Il est mentionné dans ce fil de défaut de serveur .

intuition
la source
Vous avez compris mon cas d'utilisation: en fait, je m'intéresse aux versions et aux scripts de configuration. Je vais suivre cette approche de base.
Francesco
FYI: Le problème que je rencontre ces jours-ci est que je ne veux pas créer de branche sur mon répertoire .vim lorsque je travaille sur de nouveaux composants. J'envisage un tas d'approches différentes: je finirai probablement par le diviser en un module séparé en utilisant filter-branchet en installant un clone 'work in progress' de celui-ci dans un sous-répertoire de ~. Cela semble être une stratégie généralement utile: je m'attends à ce qu'il soit également utile de cloner l'intégralité de mon référentiel de répertoires personnels, puis de tester les scripts après avoir défini $ HOME dans le répertoire clone. Je ne sais pas à quel point cette variable d'environnement est universellement respectée, mais je verrai.
intuition
0

Vous pouvez utiliser git sur votre répertoire personnel, puis utiliser les sous-modules git ou revise-tree pour les projets git externes sur lesquels vous travaillez.

edgester
la source