Version control 什么';这是一个很好的版本控制系统,可以用来对整个本地文件系统进行版本控制吗?

Version control 什么';这是一个很好的版本控制系统,可以用来对整个本地文件系统进行版本控制吗?,version-control,local,root,Version Control,Local,Root,我正处于一个特定的用例中,我希望在设置新工作站(运行Mac OS X Lion)时,从方法上记录我所做的所有重要工作 我希望在同一存储库中对文件系统中完全不同位置的文件进行版本控制,例如/etc、~/、/Libraries中的文件等 关于我的要求的一些想法/细节: 本回购协议仅供个人使用。我将使用GUI客户端浏览我的设置历史记录 我最初想使用Git,它托管在一个大型Github私有存储库中,但由于无法像使用SVN那样克隆子文件夹,因此我必须在任何地方创建符号链接,这似乎并不方便 所以,当我想对

我正处于一个特定的用例中,我希望在设置新工作站(运行Mac OS X Lion)时,从方法上记录我所做的所有重要工作

我希望在同一存储库中对文件系统中完全不同位置的文件进行版本控制,例如
/etc
~/
/Libraries
中的文件等

关于我的要求的一些想法/细节:

  • 本回购协议仅供个人使用。我将使用GUI客户端浏览我的设置历史记录
  • 我最初想使用Git,它托管在一个大型Github私有存储库中,但由于无法像使用SVN那样克隆子文件夹,因此我必须在任何地方创建符号链接,这似乎并不方便
  • 所以,当我想对文件进行版本设置时,我是否最好设置一个本地SVN服务器,然后只签入我想要的文件

您可以使用Mercurial、Git等,然后只需忽略所有您不想更新的文件。在根目录中创建存储库并跟踪其余内容。比如(对于Mercurial):


另一种方法是使用更专门的工具,例如用于跟踪配置数据的工具。

您可以使用Mercurial、Git等,然后只需忽略所有不想更新的文件。在根目录中创建存储库并跟踪其余内容。比如(对于Mercurial):


另一种方法是使用更专门的工具,例如用于跟踪配置数据的工具。

如果,比如说,我在
/
上创建了一个git repo,这会不会与可能使用git进行版本控制的子文件夹冲突?嗯,是的。Git和Mercurial都避免跟踪嵌套存储库中的文件。我可以看出跟踪
/home
这项技术会有什么问题,但它允许您跟踪配置文件和自由。您能解释一下为什么跟踪
/home
会有问题吗?您刚才指出,
/
中的存储库不会跟踪存储库的内容,例如,
/home/foo/repo
存储库。在
/etc
中不会有任何这样的嵌套存储库,但在
/home
中可能会有一些。如果要求对包括回购协议在内的所有内容进行版本化,那么Mercurial和Git将无法正常工作。如果您只想跟踪新机器的设置,而不创建其他回购,那么它可以正常工作。即使我将
*
添加到我的
.gitignore
中,我的系统在根目录下的
git
会受到巨大的性能损失。我不知道为什么。如果,比如说,我在
/
上创建了一个git repo,那么这会不会与可能使用git进行版本控制的子文件夹发生冲突?嗯,是的。Git和Mercurial都避免跟踪嵌套存储库中的文件。我可以看出跟踪
/home
这项技术会有什么问题,但它允许您跟踪配置文件和自由。您能解释一下为什么跟踪
/home
会有问题吗?您刚才指出,
/
中的存储库不会跟踪存储库的内容,例如,
/home/foo/repo
存储库。在
/etc
中不会有任何这样的嵌套存储库,但在
/home
中可能会有一些。如果要求对包括回购协议在内的所有内容进行版本化,那么Mercurial和Git将无法正常工作。如果您只想跟踪新机器的设置,而不创建其他回购,那么它可以正常工作。即使我将
*
添加到我的
.gitignore
中,我的系统在根目录下的
git
会受到巨大的性能损失。我不知道为什么。
$ cd /
$ hg init
$ echo ".*" > .hgignore
$ echo '^(?!(etc|Libraries))' > .hgignore
$ hg add
$ hg commit -m "initial checkin"