Etckeeper est un excellent outil pour garder une trace des modifications apportées à vos fichiers de configuration dans /etc
. Quelques éléments clés à ce sujet ressortent vraiment. Il peut être utilisé avec une grande variété de VCS: git, mercurial, darcs ou bzr. Il effectue également des validations automatiques quotidiennement et chaque fois que vous installez, supprimez ou mettez à niveau un package. Il assure également le suivi des autorisations de fichiers et des métadonnées de propriété des utilisateurs / groupes.
Je voudrais également garder mes "fichiers dot" dans mon répertoire personnel sous contrôle de version également, de préférence bazar. Est-ce que quelqu'un sait si un outil comme etckeeper existe à cet effet?
Le pire des cas, j'imagine qu'un simple travail de cron courir bzr add && bzr ci
une ou deux fois par jour avec l' ajout ~/Documents
, ~/Music
etc à la .bzrignore
Toute personne faisant déjà quelque chose de similaire avec un script?
Bien que je préfère le bazar, d'autres options pourraient être intéressantes.
la source
bzr
n'est certainement pas la voie à suivre en 2015.Réponses:
Je ne savais pas s'il y avait quelque chose qui a fait cela, j'ai donc fouetté du code pour obtenir exactement ce que vous voulez en utilisant mon référentiel ici: http://github.com/robertmassaioli/config-files
J'ai un fichier qui indique où tous les fichiers appartiennent et le programme generate_links les met tous là. Si vous savez ce que vous faites et que vous pouvez compiler du code Haskell, c'est vraiment simple et facile. Mais sachez qu'il a vraiment été fait pour mon usage personnel.
la source
Eh bien, je suis allé de l'avant et je l'ai fait manuellement jusqu'à ce que je trouve une meilleure solution. Je pourrais donc tout aussi bien expliquer ce que j'ai fait.
J'ai d'abord fait un
bzr init ~
, mais la prochaine chose que j'ai fait étaitbzr ignore "*"
. J'ai décidé que je ne voulais pas garder le tout sous contrôle de version. Cela n'en valait tout simplement pas la peine, surtout lorsque vous considérez qu'il y a des choses que vous ne devriez vraiment pas garder en vcs comme vos clés. Je devais doncbzr add
les fichiers spécifiques que je voulais. Vous pouvez également ajouter des exceptions à.bzrignore
. Les expressions régulières Python y sont également utiles. Je le garde assez mince pour l'instant. Si tout va bien, je pourrais ajouter tous~/.config
et~/.gconf
aussi.J'ai également écrit un script rapide que je lance en tant que tâche cron. Il vérifie si les fichiers ont changé, et si c'est le cas, un commit automatique:
la source
J'ai transformé tout mon
~
répertoire en un référentiel Bazaar. Le stockage des métadonnées n'est pas un problème pour les fichiers dans le répertoire personnel: tout appartient au même compte et groupe, etbzr
stocke déjà le bit d'exécution.J'y ajoute manuellement les fichiers "intéressants" (je ne veux pas, par exemple, ma collection de musique ou le cache firefox être sous contrôle de version), mais si vous voulez automatiser cela avec un script, je pense que c'est la solution simple de faire
bzr add && bzr ci
sur des répertoires sélectionnés ou sur la sortie d'unefind
commande fera juste le travail.la source
Je garde mes fichiers zsh et vim dans git, mis sur github, dans différents dépôts:
pour zsh, par exemple, j'ai créé ".zsh" et y ai mis zshrc et zshenv, plus un script pour lier zshrc à ~ / .zshrc et zshenv à ~ / .zshenv, quelque chose comme ça.
moi aussi
pour .vim, c'est presque la même chose, sauf que j'utilise des sous-modules pour les plugins, avec pathogène, j'ai donc ajouté cela dans init.sh
et quand je veux ajouter un plugin vim, je le fais
par exemple.
ok, cela demanderait un peu trop de travail si vous avez plus de quelques répertoires de points que vous voulez gérer, mais rien ne vous empêche de les mettre tous dans le même répertoire, ou séparés par des activités (activé pour tous les éditeurs graphiques, un pour activités web…) ou plus. de toute façon, c'est ce que j'ai fait, donc juste mes deux cents :).
la source
J'utilise une solution qui n'est pas automatique comme etckeeper (je dois valider manuellement), mais cela a bien fonctionné pour moi. Ce n'est pas aussi développé que j'aime, mais ça marche.
J'ai écrit mon propre utilitaire similaire à GNU Stow , car stow n'a pas fait tout ce que je voulais. Je l'appelle Stow in Home . Lors de son exécution, il recherche un répertoire nommé "HOME". Il prend ensuite tout sous ce répertoire et le relie à l'emplacement correspondant dans $ HOME, créant des répertoires si nécessaire. Il traduira également les noms de fichiers - si un fichier commence par un '_', il sera remplacé par un '.'. J'ai fait cela parce que c'est plus agréable pour éditer mes fichiers dot lorsqu'ils ne sont pas cachés (les voir dans les listes de répertoires par défaut). Ensuite, cela leur donnerait le nom que leur application attend.
J'ai donc plusieurs dépôts git pour ma configuration. Je ne mets que des fichiers dot que je modifie personnellement. L'avantage de cela est que je peux avoir un référentiel pour les fichiers dot que je peux partager avec d'autres (comme ma configuration Emacs) et un pour d'autres qui sont privés (par exemple, ma configuration ssh, avec des noms d'hôtes et autres pour le travail). Le lien symbolique avec le rangement à la maison met tout au bon endroit, mais le contrôle de la source pour chacun peut être séparé.
Cela a bien fonctionné pour moi. Il n'y a vraiment aucune raison pour laquelle je n'ai pas pu configurer quelque chose pour effectuer automatiquement des validations. Ou déplacez tous les fichiers de points dans les référentiels appropriés et utilisez toujours stow in home. Mais c'est comme ça que j'ai fait les choses.
la source
Vous ne pouvez pas ajouter le
dot files
au référentiel utilisé dans Etckeeper?la source
/etc
?Je l'ai fait en copiant tous mes fichiers dot que j'aime garder sous contrôle de source dans un dossier appelé "fichiers dot" dans mon répertoire / home /. Bien sûr, cela signifie conserver les doublons et les copier d'avant en arrière si nécessaire, mais je trouve que c'est la solution la plus simple pour moi.
la source
Je garde mes fichiers dans un sous-répertoire et fais des liens symboliques. J'ai un script qui automatise cela. Vous pouvez tout vérifier sur http://code.google.com/p/samking-config-files/source/browse/
la source