Comment puis-je placer ma configuration personnelle Windows sous contrôle de version ?
Résumé (détails et exemples suivent):
- Configuration personnelle (par exemple les préférences du bureau), pas la configuration du système (par exemple les pilotes); devrait fonctionner sans droits d'administrateur
- Contrôle de version, pas de sauvegarde ni de création d'image disque
Voici quelques choses que je veux pouvoir faire:
- Validez l'état actuel de ma configuration dans un référentiel, de préférence avec une certaine granularité (si j'ai apporté deux modifications, j'aimerais pouvoir en valider une sans valider l'autre).
- Écrivez une entrée du journal des modifications chaque fois que je valide et consultez la liste des entrées du journal des modifications pour chaque fichier de configuration.
- Voir les différences entre l'état actuel et une version de référentiel.
- Sortez de mon référentiel sur une nouvelle machine Windows et reproduisez ma configuration (au moins si la nouvelle machine a la même version de Windows).
<added1> Je n'essaierai pas de donner une définition complètement précise de la "configuration"; J'essaie de couvrir toutes sortes de préférences personnelles (par exemple, tout ce qui peut être réglé dans le panneau de configuration sans droits d'administrateur, raccourcis dans mon menu "Programmes" spécifique à l'utilisateur,…). Je ne souhaite pas inclure mes documents ou applications installées. </added1>
<added2> Notez que je cible ma configuration personnelle, pas la configuration système (ce serait utile aussi, mais ce n'est pas le but de cette question). Par exemple, je m'attends à ce qu'une solution fonctionne sans droits d'administrateur. </added1>
Ce que je fais sous Unix, c'est de mettre (une sélection de) mes fichiers dot sous contrôle de version . Sous Windows, je suppose que je devrais valider le registre et certains fichiers (lesquels?) Sous Application Data
. Je voudrais quelque chose de mieux que de placer l'ensemble du fichier de registre sous contrôle de version (ce n'est pas assez de granularité et je crains des problèmes de verrouillage). <added1> Idéalement, j'utiliserais des wrappers ou des scripts avec certains logiciels de contrôle de version courants (Bazaar, CVS, Darcs, Git, Mercurial, Subversion,…), mais ce n'est pas une exigence absolue. </added1>
J'ai actuellement besoin de travailler avec Windows 2000 et Windows XP. Puisque c'est pour une machine de travail, le payware ne fera pas l'affaire (l'open source serait l'idéal). Je suis plus à l'aise avec la ligne de commande qu'avec les interfaces graphiques.
<added1> Voici un exemple de workflow:
- Un jour, je décide que je veux que mon fond d'écran soit rose. Je fais donc le changement via l'interface graphique. Cela modifie une
ligne dans uneclé defichier de configurationdans le Registre. J'engage ensuite le changement, pour le suivre. - Plus tard, je me demande pourquoi mon fond d'écran est rose. Je recherche donc «couleur du bureau» dans le changelog.
- Un jour, je dois utiliser une nouvelle machine. Je vérifie donc à partir de mon référentiel de configuration, et voilà, le bureau rose.
Voici certaines choses que je n'essaie pas de faire:
Je n'essaye pas de faire des sauvegardes. Je veux pouvoir suivre les changements (par sémantique, ou du moins par syntaxe, pas seulement par date), et partager des informations entre machines (un référentiel, plusieurs extractions).
Je n'essaie pas de répliquer une installation Windows. Je ne veux pas reporter les dépendances matérielles, les applications installées ou les documents.
</added1>