Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mercurial忽略Drupal多站点中的站点/所有/模块_Mercurial_Drupal 6_Hgignore - Fatal编程技术网

mercurial忽略Drupal多站点中的站点/所有/模块

mercurial忽略Drupal多站点中的站点/所有/模块,mercurial,drupal-6,hgignore,Mercurial,Drupal 6,Hgignore,我不打算讨论如何为Drupal多站点安装设置mercurial,但我遇到了一些让我难以置信的事情。 我有一个drupal多站点安装,我正在尝试设置版本控制。我所做的是在Drupal根目录中使用忽略Drupal\u Root/sites/的.hgignore来初始化hg。这就是我的.hgignore中的内容,它似乎运行良好: # Glob syntax syntax: glob # Everything in sites sites/* 这很好,因为mercurial可以找到除了sites文件夹

我不打算讨论如何为Drupal多站点安装设置mercurial,但我遇到了一些让我难以置信的事情。 我有一个drupal多站点安装,我正在尝试设置版本控制。我所做的是在Drupal根目录中使用忽略Drupal\u Root/sites/的.hgignore来初始化hg。这就是我的.hgignore中的内容,它似乎运行良好:

# Glob syntax
syntax: glob
# Everything in sites
sites/*
这很好,因为mercurial可以找到除了sites文件夹之外的所有内容。现在,在sites文件夹中,结构如下所示:

sites/
    sites/all
    sites/default
    sites/domain1.com
    sites/domain2.com
drupal_root/
    .hg/
    modules/
    includes/
    themes/
    sites/
        .hg/
        all/
        default/
        domain1.com/
        domain2.com/
我的问题是,当我在站点中查看hg状态时,mercurial将找不到sites/all/modules。我尝试了.hgignore的多种排列,因为我想忽略sites/domain1.com/files,但似乎没有任何效果。我甚至删除了回购协议,重新开始,没有任何.hgignore。sites/all/library和sites/all/scripts都显示得很好

父目录中的.hgignore是否与此有关

更新:我刚刚完全删除了sub-repo(我知道它实际上不是sub-repo,但我在这里受到限制),删除了drupal root中的repo,并开始将整个安装作为单个repo来处理。同样,mercurial也找不到root/sites/all/modules

更新:@Ry4an-drupal根目录中的行为是正确的。我试图模拟子存储库,因为我一直在使用HG1.3,而HG1.3并没有真正实现它们。因此,我的目录结构如下所示:

sites/
    sites/all
    sites/default
    sites/domain1.com
    sites/domain2.com
drupal_root/
    .hg/
    modules/
    includes/
    themes/
    sites/
        .hg/
        all/
        default/
        domain1.com/
        domain2.com/

因此,我确实希望drupal\u root中的存储库忽略drupal\u root/sites下的所有内容,但我在drupal\u root/sites中有第二个存储库,它应该处理那里的所有内容。这是回购协议,它没有找到一切。

你看到的是我预期的行为。这条全球规则:

syntax: glob
# Everything in sites
sites/*
忽略站点中的所有内容,包括“
sites/all
”,因此Mercurial根本不会向下查看“
all
”,因此它不会看到“
sites/all/modules

如果您提供一个完整的文件列表及其路径,并注明您希望忽略的文件和不希望忽略的文件,我相信有人可以帮助您制定正确的规则,但您的问题并不完全清楚。

  • 如果您的任务是“忽略所有目录,除了一个目录”
  • 如果您可以编写(并测试)regexp
您可以咨询并根据您的条件采用regexp

另一种(稍不准确的)解决方案可能是

  • 保留当前的“全部忽略”模式
  • 手动将
    站点/all/modules
    中的所有文件添加到repo中(hgignore仅忽略未跟踪的对象)
  • 不要忘记以后添加到模块中的所有新文件,显式添加到Mercurial中(规则将忽略这些文件)

    • 嗯,我觉得自己像个白痴。问题是drupal_root/sites/all/modules中已经有一个存储库。我不记得把它放在那里了,但mercurial似乎忽略了任何已经包含.hg目录的目录。谢谢大家的帮助