在Mercurial中拉出某些目录?

时间:2012-03-08 22:19:51

标签: mercurial

让我试着让这个非常简单。我正在为我的开发人员部署Vagrant,我将使用Puppet来配置这些机器。假设我有两套机器,一台有apache / mysql5服务器和一台apache / mongodb服务器。我使用Puppet来管理不同的组件,但我没有使用集中式puppetmaster服务器。

据说,我在Mercurial存储库中提供了两个目录。如果我需要使用mysql修改某些内容,我可以让开发人员相应地提取最新的更改。我遇到的问题是,如何处理存储库结构而不必复制目录结构。

manifests - 每台计算机都有所不同,mysql计算机将具有安装mysql的指令,而mongodb计算机将拥有自己的mongodb指令}

modules - 这是在每台机器之间共享,但只有这个文件夹中所需的文件夹存储在每台机器上(例如modules / mongodb和modules / mysql)。

如果我把所有这些都放到一个大的存储库中,我不希望我的“apache + mysql”服务器下载“apache + mongodb”模块的模块。有没有办法让我们说manifests目录放入特定的仓库并从modules文件夹中只下载相应的文件夹?

1 个答案:

答案 0 :(得分:3)

您可以使用Mercurial的Subrepository功能。

如果我理解你想要什么,我会做以下事情:

  1. 每个各种清单的一个存储库
  2. 每个不同模块的一个存储库
  3. 为每种机器类型创建一个“顶级”存储库,该存储库将包含上面所需的各种子存储库。