Windows 配置的版本控制

Gil*_*il' 8 windows windows-registry version-control

如何将我的 Windows 个人配置置于版本控制之下

总结(细节和例子如下):

  • 个人配置(例如桌面首选项),而不是系统配置(例如驱动程序);应该在没有管理员权限的情况下工作
  • 版本控制,而不是备份或磁盘映像

以下是我希望能够做的一些事情:

  • 将我的配置的当前状态提交到存储库,最好有一定的粒度(如果我做了两个更改,我希望能够提交一个而不提交另一个)。
  • 每当我提交时写一个变更日志条目,并查看每个配置文件的变更日志条目列表。
  • 查看当前状态和存储库版本之间的差异。
  • 在新的 Windows 机器上从我的存储库中检出并重现我的配置(至少如果新机器具有相同版本的 Windows)。

<add1> 我不会试图给“配置”一个完全精确的定义;我试图涵盖所有类型的个人偏好(例如,在没有管理员权限的情况下在控制面板中设置的任何内容,我的用户特定的“程序”菜单中的快捷方式,......)。我不想包含我的文档或已安装的应用程序。 </add1>

<add2> 请注意,我的目标是我的个人配置,而不是系统配置(这也很有用,但这不是这个问题的目的)。例如,我希望解决方案无需管理员权限即可工作。 </add1>

我在 unix 中所做的是将(选择)我的dot 文件置于 version control 之下。在 Windows 下,我认为我应该在Application Data. 我想要比将整个注册表文件置于版本控制之下更好的东西(这不够细化,而且我担心锁定问题)。<add1>理想情况下,我会使用一些常见版本控制软件(Bazaar、CVS、Darcs、Git、Mercurial、Subversion 等)的包装器或脚本,但这不是绝对要求。</add1>

我目前需要使用 Windows 2000 和 Windows XP。由于这是用于工作机器,因此无法使用付费软件(开源将是理想的选择)。与 GUI 相比,我更喜欢命令行。

<add1> 这是一个示例工作流程:

  • 有一天,我决定将桌面背景设为粉红色。所以我通过 GUI 进行更改。这会修改注册表中配置文件项中的一行。然后我提交更改,以跟踪它。
  • 后来我想知道为什么我的桌面背景是粉红色的。所以我在更新日志中搜索“桌面颜色”。
  • 有一天我需要使用一台新机器。所以我从我的配置存储库中查看,瞧,粉红色的桌面。

以下是我不想做的一些事情:

  • 我不是要备份。我希望能够跟踪更改(通过语义,或者至少是语法,而不仅仅是通过日期),并在机器之间共享信息(一个存储库,多个结帐)。

  • 我不是要复制 Windows 安装。我不想携带硬件依赖项、已安装的应用程序或文档。

</add1>

har*_*ymc 9

据我所知,Windows 配置过于分散,无法在注册表中的太多文件和位置中进行可靠备份。

在一台机器上备份注册表并在另一台(甚至同一台)机器上恢复它是不可能的,因为太多的密钥对机器来说太特定了,而且因为有些密钥受 Windows 保护。

系统还原旨在保持机器状态,但出于您的目的,它不可靠,因为它会自行决定删除哪些备份以节省空间,并且还有其他负面问题,例如在 Windows 2000 中不可用。

我能看到的唯一通用解决方案是对整个系统磁盘进行映像,并在需要时使用磁盘映像产品进行恢复。

有几种质量非常好的磁盘映像产品,如果您发现此解决方案对您感兴趣,我可以推荐它们。他们中的一些人保留了具有描述性的图像存储库。尽管最好的是商业软件,但免费软件仍然非常好。

当系统驱动器不包含用户数据时,磁盘映像效果最佳。