我不打算讨论如何为 Drupal 多站点安装设置 mercurial,但我遇到了一些令我难以置信的事情。我有一个 drupal 多站点安装,我正在尝试设置版本控制。我所做的是在 Drupal Root 中使用 hg init,使用忽略 drupal_root/sites/ 的 .hgignore。这就是我的 .hgignore 中的内容,它似乎工作正常:
# Glob syntax
syntax: glob
# Everything in sites
sites/*
这工作得很好,因为 mercurial 会找到除站点文件夹之外的所有其他内容。现在,在站点文件夹中,结构如下所示:
sites/
sites/all
sites/default
sites/domain1.com
sites/domain2.com
我的问题是,当我在站点内执行 hg status 时,mercurial 将找不到站点/所有/模块。我尝试了 .hgignore 的多种排列,因为我想忽略站点/domain1.com/files,但似乎没有任何效果。我什至删除了 repo,并在没有任何 .hgignore 的情况下重新开始。站点/所有/库和站点/所有/脚本都显示得很好。
父目录中的 .hgignore 可能与它有关吗?
更新:我刚刚完全删除了子存储库(我知道它实际上不是子存储库,但我在这里受到限制)删除了 drupal 根目录中的存储库,并开始将整个安装视为单个存储库。同样的事情,mercurial 只是找不到 root/sites/all/modules。
更新: @Ry4an - drupal 根目录中的行为是正确的。我正在尝试模拟子存储库,因为我坚持使用 Hg 1.3,它并没有真正实现它们。因此,我的目录结构如下所示:
drupal_root/
.hg/
modules/
includes/
themes/
sites/
.hg/
all/
default/
domain1.com/
domain2.com/
所以,我确实希望 drupal_root 中的存储库忽略 drupal_root/sites 下的所有内容,但我在 drupal_root/sites 中有第二个存储库应该处理那里的所有内容。那是没有找到一切的回购。