如何将Windows个人配置置于版本控制下?
摘要(详细信息和示例如下):
- 个人配置(例如,桌面首选项),而不是系统配置(例如,驱动程序);应该在没有管理员权限的情况下工作
- 版本控制,而不是备份或磁盘映像
这是我想做的几件事:
- 将配置的当前状态提交给存储库,最好以某种粒度(如果我进行了两次更改,我希望能够提交一个而不提交另一个)。
- 每当我提交时,都写一个变更日志条目,并查看每个配置文件的变更日志条目列表。
- 查看当前状态和存储库版本之间的差异。
- 从新Windows计算机上的存储库中签出并重现我的配置(至少在新计算机具有相同版本的Windows的情况下)。
<add1> 我不会尝试给出“配置”的完全精确的定义;我正在尝试涵盖各种个人喜好(例如,在控制面板中可设置的,没有管理员权限的任何内容,用户特定的“程序”菜单中的快捷方式……)。我不想包含我的文档或已安装的应用程序。 </ add1>
<add2> 请注意,我的目标是个人配置,而不是系统配置(这也很有用,但这不是此问题的目的)。例如,我希望没有管理员权限的解决方案就可以工作。 </ add1>
我在unix中所做的就是将我的点文件(选择)置于版本控制下。在Windows下,我假设我应该在下提交注册表和一些文件(哪个?)Application Data
。我希望有比将整个注册表文件置于版本控制下更好的方法(粒度不够,而且我担心锁定问题)。<add1>理想情况下,我将使用包装程序或脚本以及一些常见的版本控制软件(Bazaar,CVS,Darcs,Git,Mercurial,Subversion等),但这不是绝对要求。</ add1>
我目前需要使用Windows 2000和Windows XP。由于这是用于工作机器的,因此不会使用付费软件(开源是理想的选择)。与GUI相比,我对命令行更满意。
<add1> 这是一个示例工作流程:
- 有一天,我决定希望桌面背景为粉红色。因此,我通过GUI进行了更改。这将修改注册表中
配置文件项中的一行。然后,我提交更改,以跟踪它。 - 后来我想知道为什么我的桌面背景是粉红色的。因此,我在变更日志中搜索“桌面颜色”。
- 有一天我需要使用一台新机器。因此,我从配置库和voilà(粉色桌面)中签出。
以下是一些我不想做的事情:
我不是要备份。我希望能够跟踪更改(通过语义或至少语法,而不仅仅是按日期),并能够在计算机之间共享信息(一个存储库,多个签出)。
我不是要复制Windows安装。我不想保留硬件依赖性,已安装的应用程序或文档。
</ add1>