Come posso mettere la mia configurazione personale di Windows sotto controllo della versione ?
Riepilogo (dettagli ed esempi seguenti):
- Configurazione personale (ad es. Preferenze del desktop), non configurazione del sistema (ad es. Driver); dovrebbe funzionare senza diritti di amministratore
- Controllo della versione, non backup o imaging del disco
Ecco alcune cose che voglio essere in grado di fare:
- Commettere lo stato corrente della mia configurazione in un repository, preferibilmente con una certa granularità (se ho apportato due modifiche, mi piacerebbe essere in grado di eseguire il commit di uno senza il commit dell'altro).
- Scrivere una voce del log delle modifiche ogni volta che commetto e vedere l'elenco delle voci del log delle modifiche per ciascun file di configurazione.
- Vedi le differenze tra lo stato corrente e una versione del repository.
- Dai un'occhiata al mio repository su un nuovo computer Windows e riproduci la mia configurazione (almeno se il nuovo computer ha la stessa versione di Windows).
<added1> Non proverò a dare una definizione completamente precisa di "configurazione"; Sto cercando di coprire tutti i tipi di preferenze personali (ad esempio, qualsiasi cosa impostabile nel pannello di controllo senza diritti di amministratore, scorciatoie nel menu "Programmi" specifico dell'utente, ...). Non voglio includere i miei documenti o le applicazioni installate. </ added1>
<added2> Nota che sto prendendo di mira la mia configurazione personale, non la configurazione del sistema (sarebbe utile, ma non è lo scopo di questa domanda). Ad esempio, mi aspetto che una soluzione funzioni senza i diritti di amministratore. </ added1>
Quello che faccio in unix è mettere (una selezione di) i miei file dot sotto il controllo della versione . In Windows, presumo che dovrei eseguire il commit del registro e di alcuni file (quali?) In Application Data
. Vorrei qualcosa di meglio che mettere l'intero file di registro sotto il controllo della versione (non è abbastanza granularità e temo di bloccare i problemi). <added1> Idealmente avrei usato wrapper o script con alcuni software di controllo di versione comuni (Bazaar, CVS, Darcs, Git, Mercurial, Subversion, ...), ma questo non è un requisito assoluto. </ added1>
Al momento ho bisogno di lavorare con Windows 2000 e Windows XP. Poiché questo è per una macchina da lavoro, il payware non funziona (l'open source sarebbe l'ideale). Mi sento più a mio agio con la riga di comando che con le GUI.
<added1> Ecco un flusso di lavoro di esempio:
- Un giorno decido che voglio che il mio sfondo del desktop sia rosa. Quindi apporto la modifica tramite la GUI. Ciò modifica una
riga in unachiave delfile di configurazionenel registro. Quindi commetto il cambiamento per tenerne traccia. - Più tardi mi chiedo perché il mio sfondo del desktop sia rosa. Quindi cerco il "colore del desktop" nel log delle modifiche.
- Un giorno ho bisogno di usare una nuova macchina. Quindi controllo dal mio repository di configurazioni e voilà, desktop rosa.
Ecco alcune cose che non sto cercando di fare:
Non sto cercando di eseguire backup. Voglio essere in grado di tracciare le modifiche (per semantica, o almeno la sintassi, non solo per data) e condividere informazioni tra macchine (un repository, più checkout).
Non sto cercando di replicare un'installazione di Windows. Non voglio trasferire dipendenze hardware, applicazioni installate o documenti.
</ Added1>