Як я можу поставити свою персональну конфігурацію Windows під контроль версій ?
Підсумок (деталі та приклади випливають):
- Персональна конфігурація (наприклад, налаштування робочого столу), а не конфігурація системи (наприклад, драйвери); має працювати без прав адміністратора
- Контроль версій, а не резервне копіювання чи дискові зображення
Ось декілька речей, які я хочу вміти робити:
- Зафіксуйте поточний стан моєї конфігурації у сховищі, бажано, з певною детальністю (якщо я вніс дві зміни, я хотів би мати змогу зробити одне, не виконуючи інше).
- Напишіть запис змін, коли я здійснюю, і перегляньте список записів змін для кожного файлу конфігурації.
- Дивіться відмінності між поточним станом та версією сховища.
- Вийдіть із мого сховища на новій машині Windows і відтворіть мою конфігурацію (принаймні, якщо нова машина має ту ж версію Windows).
<added1> Я не буду намагатися дати повністю точне визначення поняття "конфігурація"; Я намагаюся охопити всі види особистих уподобань (наприклад, все, що можна встановити на панелі керування без прав адміністратора, ярлики в моєму користувальницькому меню "Програми" ...). Я не хочу включати свої документи чи встановлені програми. </added1>
<added2> Зауважте, що я орієнтуюся на мою особисту конфігурацію, а не на конфігурацію системи (це також було б корисно, але це не мета цього питання). Наприклад, я очікую, що рішення може працювати без прав адміністратора. </added1>
Що я роблю в unix - це поставити (підбірку) моїх точкових файлів під контроль версій . У Windows я припускаю, що я повинен зафіксувати реєстр та деякі файли (які?) Під Application Data. Я хотів би щось краще, ніж ставити весь файл реєстру під контроль версій (цього недостатньо деталізації, і я боюся проблем із блокуванням). <added1> В ідеалі я б використовував обгортки або скрипти з деяким поширеним програмним забезпеченням для управління версіями (Bazaar, CVS, Darcs, Git, Mercurial, Subversion,…), але це не є абсолютною вимогою. </added1>
Наразі мені потрібно працювати з Windows 2000 та Windows XP. Оскільки це для робочої машини, начинки для використання не будуть (відкритим кодом було б ідеально). Мені зручніше з командним рядком, ніж з графічними інтерфейсами.
<added1> Ось зразок робочого процесу:
- Одного разу я вирішую, що хочу, щоб фон мого робочого столу був рожевим. Тому я вношу зміни через GUI. Це змінює
рядок уключіфайла конфігураціїв реєстрі. Потім я здійснюю зміни, щоб відстежувати її. - Пізніше мені цікаво, чому фон мого робочого столу рожевий. Тож я шукаю “колір робочого столу” в журналі змін.
- Одного разу мені потрібно скористатися новою машиною. Тож я переходжу з мого сховища конфігурації та voilà, рожевого робочого столу.
Ось деякі речі, які я не намагаюся зробити:
Я не намагаюся робити резервні копії. Я хочу мати змогу відслідковувати зміни (за семантикою чи принаймні синтаксисом, а не лише за датою) та обмінюватися інформацією між машинами (одне сховище, кілька записів).
Я не намагаюся копіювати інсталяцію Windows. Я не хочу переносити апаратні залежності, встановлені додатки чи документи.
</added1>