Jak mogę ustawić moją osobistą konfigurację systemu Windows pod kontrolą wersji ?
Podsumowanie (szczegóły i przykłady poniżej):
- Konfiguracja osobista (np. Preferencje pulpitu), a nie konfiguracja systemu (np. Sterowniki); powinien działać bez uprawnień administratora
- Kontrola wersji, nie kopie zapasowe ani obrazowanie dysku
Oto kilka rzeczy, które chcę zrobić:
- Zatwierdź bieżący stan mojej konfiguracji do repozytorium, najlepiej z pewną szczegółowością (jeśli dokonałem dwóch zmian, chciałbym móc zatwierdzić jedną bez zatwierdzania drugiej).
- Napisz wpis dziennika zmian, ilekroć dokonam zatwierdzenia, i zobacz listę wpisów dziennika zmian dla każdego pliku konfiguracyjnego.
- Zobacz różnice między bieżącym stanem a wersją repozytorium.
- Sprawdź z mojego repozytorium na nowym komputerze z systemem Windows i odtwórz moją konfigurację (przynajmniej jeśli nowy komputer ma tę samą wersję systemu Windows).
<added1> Nie będę próbował podawać całkowicie precyzyjnej definicji „konfiguracji”; Próbuję zaspokoić wszelkie osobiste preferencje (np. Wszystko, co można ustawić w panelu sterowania bez uprawnień administratora, skróty w menu użytkownika „Programy”…). Nie chcę dołączać moich dokumentów ani zainstalowanych aplikacji. </added1>
<added2> Zauważ, że celuję w moją osobistą konfigurację, a nie konfigurację systemu (to też by się przydało, ale nie jest to celem tego pytania). Na przykład oczekuję, że rozwiązanie zadziała bez uprawnień administratora. </added1>
To, co robię w Uniksie, to poddanie (wybór) moich plików kropek kontroli wersji . W systemie Windows zakładam, że powinienem zatwierdzić rejestr i niektóre pliki (które?) Poniżej Application Data
. Chciałbym coś lepszego niż poddanie całego pliku rejestru kontroli wersji (to za mało szczegółowości i obawiam się problemów z blokowaniem). <added1> Idealnie byłoby użyć opakowania lub skryptów z niektórymi popularnymi programami do kontroli wersji (Bazaar, CVS, Darcs, Git, Mercurial, Subversion,…), ale nie jest to absolutny wymóg. </added1>
Obecnie muszę pracować z systemem Windows 2000 i Windows XP. Ponieważ dotyczy to maszyny roboczej, payware nie zadziała (idealne byłoby open source). Czuję się bardziej komfortowo z linii poleceń niż z GUI.
<added1> Oto przykładowy przepływ pracy:
- Pewnego dnia postanowiłem, że moje tło pulpitu będzie różowe. Więc dokonuję zmiany za pomocą GUI. To modyfikuje
wiersz wkluczupliku konfiguracyjnegow rejestrze. Następnie zatwierdzam zmianę, aby ją śledzić. - Później zastanawiam się, dlaczego moje tło pulpitu jest różowe. Dlatego w dzienniku zmian szukam „koloru pulpitu”.
- Pewnego dnia muszę użyć nowej maszyny. Więc sprawdzam z mojego repozytorium konfiguracji i voilà, różowy pulpit.
Oto kilka rzeczy, których nie próbuję zrobić:
Nie próbuję tworzyć kopii zapasowych. Chcę mieć możliwość śledzenia zmian (według semantyki lub przynajmniej składni, nie tylko według daty) i udostępniania informacji między komputerami (jedno repozytorium, wiele transakcji).
Nie próbuję replikować instalacji systemu Windows. Nie chcę przenosić zależności sprzętowych, zainstalowanych aplikacji ani dokumentów.
</added1>