7 votes

Utilisation de liens symboliques avec git

J'avais l'habitude d'avoir mes fichiers de configuration système dans un seul répertoire pour une meilleure gestion, mais maintenant j'ai besoin d'utiliser un contrôle de version sur ces fichiers.

Mais le problème est que git ne comprend pas les liens symboliques qui pointent vers l'extérieur du dépôt, et je ne peux pas inverser le rôle (avoir les vrais fichiers sur le dépôt et les liens symboliques sur leur propre chemin) puisque certains fichiers sont lus avant le chargement du noyau.

Je pense que je peux utiliser unison pour synchroniser les fichiers dans le repo et leurs chemins, mais ce n'est pas pratique. Et les liens physiques seront probablement brisés. Une idée ?

2voto

mreggen Points 2940

Si la modification manuelle est la seule façon d'éditer ces fichiers, vous pourriez mettre les versions canoniques dans le répertoire de configuration du système et mettre en place un crochet post-commit dans git qui les copierait vers leurs "vrais" emplacements.

2voto

Sur Debian et les distributions dérivées, vous pouvez utiliser etckeeper pour gérer /etc . C'est aussi simple que d'installer etckeeper, de lancer etckeeper init une fois et en cours etckeeper commit quand vous avez changé quelque chose.

Je ne sais pas si etckeeper est directement disponible pour Arch Linux, mais il y a succès rapports sur le web.

Etckeeper utilise les hooks git pour gérer les métadonnées telles que les permissions, la propriété et les liens symboliques.

-2voto

Faites des liens durs, et non des liens mous.

J'ai le même problème, j'utilise etckeeper, et il copie mes fichiers dans /etc, ce que je ne veux pas.

Donc, au lieu de

ln -s /srv/www/site/apache.conf srv_site.com

faire

ln /srv/www/site/apache.conf srv_site.com

et ça marche ! :D

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X