
gitSync
Synchroniser ses fichiers de configuration et ses projets via un dépôt Git
Script systèmenovembre 2014BashZshGitrsync
Script shell de 2014 qui envoie ses fichiers de configuration (.zshrc, .vimrc, .vim, .atom…) et un dossier de travail vers un dépôt Git, puis les réinstalle sur un autre poste en mettant de côté la configuration d’origine de la machine.
But du projet
Retrouver son environnement de travail (shell, éditeurs, projets en cours) sur n’importe quel poste, en utilisant un simple dépôt Git distant comme espace de stockage. L’outil prévoit aussi le cas d’une machine empruntée : la configuration de la personne qui l’utilise habituellement est sauvegardée avant d’être remplacée, puis peut être restaurée.
Fonctionnalités
Une fois gitSync.sh chargé par le shell, il fournit des alias :
gitSync: copie les fichiers listés dansfavoritesvers~/Sync/Cfg, puis envoie tout~/Syncsur le dépôt configuré avec un commit horodaté.gitSyncAuto: relance la synchronisation toutes les 60 secondes, sans cron.gitSyncTake: clone le dépôt dans~/Syncpuis installe sa configuration sur la machine (infect), après avoir mis de côté celle de l’hôte dans~/Sync/.preserveGuest.gitSyncCleanetgitSyncUninstall: restaurent la configuration de l’hôte et suppriment toute trace de l’outil.
Fonctionnement
Tout est défini dans gitSync.sh : dossiers de travail, liste des fichiers suivis, intervalle de synchronisation, fonctions et alias. Au chargement, le script crée les dossiers manquants. À chaque envoi, le contenu de ~/Sync est recopié avec rsync dans un dossier temporaire, les sous-dépôts .git sont retirés, un dépôt neuf est initialisé puis poussé en force sur master : seul le dernier état est conservé à distance. Une option garde localement une copie préfixée par _ de la version précédente de chaque fichier.
Installation
git clone https://github.com/lp177/gitSync.git ~/.gitSync
bash ~/.gitSync/install.shinstall.sh demande l’adresse du serveur Git, le pseudo et le nom du dépôt, puis écrit l’URL obtenue dans gitSync.sh. Les alias ne sont disponibles qu’une fois le script chargé par le shell, par exemple depuis ~/.zshrc :
source ~/.gitSync/gitSync.shLimites connues
- Projet de 2014, non maintenu.
- Le push forcé écrase l’historique du dépôt distant à chaque synchronisation.
- Le code contient des erreurs qui empêchent certaines commandes de fonctionner telles quelles : par exemple,
cronErsatzappellegitAutoSyncalors que l’alias s’appellegitSyncAuto.