2012-02-09 2 views
0

Я не собираюсь обсуждать, как настроить меркурий для установки на нескольких сайтах Drupal, но я столкнулся с чем-то, что ошеломило мой разум , У меня есть многоуровневая установка drupal, в которой я пытаюсь установить контроль версий. То, что я сделал, - hg init в корне Drupal, с .hgignore, который игнорирует drupal_root/sites /. Это то, что в моем .hgignore, и это, кажется, работает нормально:mercurial игнорирует сайты/все/модули в Drupal Multi-site

# Glob syntax 
syntax: glob 
# Everything in sites 
sites/* 

Это работает просто отлично, так как ртутные находит все остальное, кроме папки сайтов. Теперь внутри папки сайтов, структура выглядит следующим образом:

sites/ 
    sites/all 
    sites/default 
    sites/domain1.com 
    sites/domain2.com 

Моя проблема заключается в том, что когда я делаю статус внутри сайтов рт.ст., ртутный не найти сайты/все/модулей. Я пробовал несколько перестановок .hgignore, так как я хотел бы игнорировать сайты/domain1.com/files, но ничего не работает. Я даже удалил репо и начал без каких-либо .hgignore. сайты/все/библиотеки и сайты/все/скрипты тоже выглядят просто отлично.

Может ли иметь .hgignore в родительском каталоге что-то с этим делать?

UPDATE: Я просто полностью удалил суб-репо (я знаю, что это не суб-репо, но я здесь ограничен) удалил репо в корневом каталоге drupal и начал обрабатывать всю установку как единый репо , То же самое, mercurial просто не найдет root/sites/all/modules.

UPDATE: @ Ry4an - Поведение в корневом каталоге drupal верное. Я пытаюсь эмулировать субрепозитории, поскольку я застрял с использованием Hg 1.3, который на самом деле не реализует их. Итак, моя структура каталогов выглядит следующим образом:

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

Итак, я хочу, чтобы хранилище внутри drupal_root игнорировать все под drupal_root/сайтов, но у меня есть второй репозиторий внутри drupal_root/сайтов, которые должны обрабатывать все там. Это репо, которое не находит все.

ответ

0

То, что вы видите, - это поведение, которое я ожидаю. Это правило Глоб:

syntax: glob 
# Everything in sites 
sites/* 

игнорирует все, что в местах, которая включает в себя «sites/all», так что Mercurial не будет смотреть вниз внутри «all» на всех, так что он не будет видеть «sites/all/modules».

Если вы предоставляете полный список файлов и их пути, аннотированные тем, какие файлы вы хотите игнорировать, и какие файлы вы не хотите игнорировать, я уверен, что кто-то может помочь вам придумать правильные правила, но это не совсем ясно из ваш вопрос.

0
  • Если задача «игнорировать все, кроме одной директории»
  • Если вы можете написать (и тест) регулярные выражения

вы можете проконсультироваться с this question и accepted answer для того, чтобы принять регулярное выражение к вашему условия

Другой (чуть более неточным) решение может быть

  • оставить текущий «игнорировать все» шаблон
  • добавить все файлы в sites/all/modules в репозиторий вручную (hgignore игнорировать только неотслеживаемые объекты)
  • не забудьте все новые файлы, добавлены позже в модули, добавьте явно в Mercurial (они будут игнорироваться по правилу)
0

Ну, я чувствую себя идиотом. Проблема заключалась в том, что уже существовал репозиторий внутри drupal_root/sites/all/modules. Я не помню, чтобы это было там, но кажется, что mercurial игнорирует любой каталог, который уже содержит каталог .hg. Спасибо всем за помощь.

Смежные вопросы