Mercurial игнорирует сайты / все / модули в Drupal Multi-site - PullRequest
0 голосов
/ 10 февраля 2012

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

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

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

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

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

Может ли .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, который должен обрабатывать все там,Это репо, который не находит все.

Ответы [ 3 ]

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

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

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

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

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

0 голосов
/ 10 февраля 2012

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

syntax: glob
# Everything in sites
sites/*

игнорирует все на сайтах, включая 'sites/all', поэтому Mercurial вообще не будет заглядывать внутрь 'all', поэтому не увидит 'sites/all/modules '.

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

...