Perso j'ai arrêté d'utiliser stow (je me suis fait un script Python custom à la place) car si par exemple un dossier n'existe pas il va faire un lien symbolique pour le dossier (au lieu de seulement les fichiers qu'il contient). Et si le logiciel utilisant ce dossier créer d'autres fichiers, ils se retrouvent dans ton dossier dotfiles et potentiellement dans ton dépôt Git si tu les commit par erreur.
alias homegit='git --git-dir=/home/marmotte/.home_git --work-tree=/home/marmotte'
Un fichier ~/.home_gitignore contenant *.
Les fichiers sont directement à leur place, donc pas de problème de liens symboliques, et pas d'ajout de fichier par erreur avec le gitignore (il suffit de homegit add -f pour ajouter un nouveau fichier).
C'est simple, ça fonctionne très bien :)
Et quand tu te balades dans ton home, par example dans un répertoire ~/src/projet-machin qui n'est pas géré par git, est-ce que git n'a pas tendance à considérer qu'il est toujours dans un dépôt git ? Car j'avais essayé ça aussi, mais git-dir était le classique .git, donc avec ta manière de faire tu n'as probablement pas ce problème. Si c'est le cas je vais faire comme ça aussi du coup.
Et dernière question comment tu fais pour cloner ton dépôt après une installation, sans que Git se plaigne que des fichiers existent déjà, etc. ?
Perso j'ai arrêté d'utiliser stow (je me suis fait un script Python custom à la place) car si par exemple un dossier n'existe pas il va faire un lien symbolique pour le dossier (au lieu de seulement les fichiers qu'il contient). Et si le logiciel utilisant ce dossier créer d'autres fichiers, ils se retrouvent dans ton dossier dotfiles et potentiellement dans ton dépôt Git si tu les commit par erreur.
De mon coté, j'utilise juste git avec :
alias homegit='git --git-dir=/home/marmotte/.home_git --work-tree=/home/marmotte'
~/.home_gitignore
contenant*
.Les fichiers sont directement à leur place, donc pas de problème de liens symboliques, et pas d'ajout de fichier par erreur avec le gitignore (il suffit de
homegit add -f
pour ajouter un nouveau fichier). C'est simple, ça fonctionne très bien :)Et quand tu te balades dans ton home, par example dans un répertoire
~/src/projet-machin
qui n'est pas géré par git, est-ce que git n'a pas tendance à considérer qu'il est toujours dans un dépôt git ? Car j'avais essayé ça aussi, mais git-dir était le classique.git
, donc avec ta manière de faire tu n'as probablement pas ce problème. Si c'est le cas je vais faire comme ça aussi du coup.Et dernière question comment tu fais pour cloner ton dépôt après une installation, sans que Git se plaigne que des fichiers existent déjà, etc. ?
Effectivement, c'est le changement de git-dir qui fait toute la différence par rapport à un simple dépôt git :)
Pour le clone initial sur les autres machines, je passe par un clone bare que je reconfigure ensuite. Plus de détails sur mon blog : https://blog.garamotte.net/posts/2013/09/01/fr-version-control-user-settings.html
Et pour la completion avec bash, j'ai ça dans mon
.bashrc
:Same problem here, un truc qui m'emmerde bien ça.
Tcho !
J'utilise aussi le coup de l'alias pour ma part, dont Lord avait parlé sur son propre blog (https://lord.re/posts/62-dotfiles-home-git/).
Ça marche bien, ça évite de s'embêter avec des liens symboliques ou d'avoir un
~/.git
qui vient poser quelques soucis d'utilisation.