我们已经将许多源代码迁移到了git上,并对当前的解决方案感到非常满意。我们希望在同一系统上对服务器配置文件进行版本控制,但是有些事情并没有达到我们想要的方式,我希望有人可以在这里分享他的经验。
此问题类似于对服务器配置文件使用修订控制?,但我们有一些特殊要求,与这些问题的建议不符。
当前设置使用Subversion来配置文件。相应的存储库看起来像这样
/#仓库的根目录 +-www.domain.com/#配置www | \ - 等等/ | \-apache2 / +-dev.domain.com/#开发的配置 | +-等/ | \ - 选择/ | \-app1 / | \-conf /#在dev上配置app1 \-staging.domain.com/#配置登台
使用subversion可以很好地工作,因为可以检出存储库的子目录。此外,您可以使用svn:externals指向一种通用结构,用于几种不同的配置设置。我们只需要处理所有版本目录中的.svn文件。另一方面, Git 没有svn:externals和稀疏签出始终要求从根目录到实际目录的路径相同。
在讨论向git的迁移时,我尝试写下服务器配置版本控制的主要要求:
- 我们只想要一个存储库
- 应该可以轻松地将更改推送到中央遥控器
- 变更集应包含真实作者
是否有一种很好的方法将所有配置都存储在一个存储库中,并且只有一个子路径作为工作副本?目前,我正在考虑两种方法,但想先在这里问这个问题
- 如果.git存储库位于固定位置,例如/ var中的某个位置,我们可以从“目标”工作目录链接到子路径。主要问题:除了将单个文件符号链接之外,我不知道将/ etc “链接” 到另一个目录以仅导入内容的方法。
- 我在这个SO问题上找到了另一种选择,建议在一个存储库中有多个分支。这无疑会增加复杂性,但是我可以看到我们尝试这种方式。
在单台机器上使用git进行配置文件管理可以正常工作,但是我相信一定有人在使用它,就像我们希望使用它那样。
谢谢你
Kariem
/
由于写入权限而必须进入存储库根目录,则很难实现第二个要求(将更改推回)。