Как я могу поставить свою личную конфигурацию Windows под контроль версий?
Резюме (подробности и примеры приведены ниже):
- Персональная конфигурация (например, настройки рабочего стола), а не конфигурация системы (например, драйверы); должен работать без прав администратора
- Контроль версий, а не резервное копирование или создание образа диска
Вот несколько вещей, которые я хочу сделать:
- Зафиксируйте текущее состояние моей конфигурации в хранилище, желательно с некоторой детализацией (если бы я сделал два изменения, я бы хотел иметь возможность зафиксировать одно без фиксации другого).
- Напишите запись журнала изменений каждый раз, когда я фиксирую, и просмотрите список записей журнала изменений для каждого файла конфигурации.
- Смотрите различия между текущим состоянием и версией репозитория.
- Проверьте из моего репозитория на новой машине Windows и воспроизведите мою конфигурацию (по крайней мере, если новая машина имеет ту же версию Windows).
<добавленный1> я не буду пытаться дать полностью точное определение "конфигурации"; Я пытаюсь охватить все виды личных предпочтений (например, что-либо настраиваемое в панели управления без прав администратора, ярлыки в моем меню «Программы», специфичные для пользователя,…). Я не хочу включать свои документы или установленные приложения. </ Added1>
<добавлено2> Обратите внимание, что я нацеливаюсь на мою личную конфигурацию, а не на конфигурацию системы (это также было бы полезно, но цель этого вопроса не в этом). Например, я ожидаю, что решение будет работать без прав администратора. </ Added1>
Что я делаю в Unix - это помещаю (выборочно) мои точечные файлы под контроль версий. Под Windows я предполагаю, что должен зафиксировать реестр и некоторые файлы (какие?) под Application Data
. Я хотел бы что-то лучше, чем поставить весь файл реестра под контроль версий (этого недостаточно, и я боюсь проблем с блокировкой). <добавленный1> В идеале я хотел бы использовать оболочки или сценарии с некоторыми распространенными программами контроля версий (Bazaar, CVS, Darcs, Git, Mercurial, Subversion, ...), но это не является абсолютным требованием. </added1>
В настоящее время мне нужно работать с Windows 2000 и Windows XP. Так как это для рабочей машины, платное программное обеспечение не подойдет (с открытым исходным кодом было бы идеально). Мне удобнее работать с командной строкой, чем с графическим интерфейсом.
<добавлен1> Вот пример рабочего процесса:
- Однажды я решил, что хочу, чтобы фон моего рабочего стола был розовым. Поэтому я делаю изменения через графический интерфейс. Это изменяет
строку включефайла конфигурациив реестре. Затем я фиксирую изменения, чтобы отследить их. - Позже я удивляюсь, почему фон моего рабочего стола розовый. Поэтому я ищу «цвет рабочего стола» в журнале изменений.
- Однажды мне нужно использовать новую машину. Поэтому я проверяю из своего хранилища настроек и вуаля, розовый рабочий стол.
Вот некоторые вещи, которые я не пытаюсь сделать:
Я не пытаюсь делать резервные копии. Я хочу иметь возможность отслеживать изменения (по семантике или, по крайней мере, по синтаксису, а не только по дате) и обмениваться информацией между машинами (один репозиторий, несколько проверок).
Я не пытаюсь повторить установку Windows. Я не хочу переносить аппаратные зависимости, установленные приложения или документы.
</ Added1>