Использование GIT с Joomla

мы-компания веб-дизайна, идущая по пути создания системы управления изменениями и всех процессов вокруг того, как мы собираемся ее использовать, и т. д. Мы рассматриваем возможность использования git системы управления пересмотра.

мы в основном разрабатываем наши веб-сайты на Joomla! система управления контентом (CMS). Я хотел бы знать, как другие компании управляют своими репозиториями при работе с CMS. Мы главным образом общаемся с зданием шаблона, и мы иногда настраивайте компоненты или плагины, которые мы установили.

мои основные вопросы:

  • лучший способ сохранить все файлы (включая файлы Joomla) в репозитории или просто файлы, которые вы делаете или изменяете сами?
  • вы храните копию базы данных (которую Joomla использует для своей работы и хранения контента) где-нибудь, чтобы учитывать изменения базы данных?

5 ответов


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


Я знаю, что этот вопрос уже получил принятый ответ, но, возможно, кто-то вернется к этому и найдет его полезным.

  • Я думаю, что отслеживание всего joomla и попытка исключить основные файлы почти невозможны, и как @vicgilbcn говорит, что это может стать кошмаром.
  • С другой стороны, если вы разрабатываете компонент для J! которые 'к сожалению' это slipt в компоненты/com_mycomp', 'администратор/компоненты/com_mycomp' и возможно 'медиа/com_mycomp' вы должен иметь 3 отдельных репозитория git для его отслеживания-так что это тоже не жизнеспособно.

Итак, что я придумал и, кажется, работает довольно хорошо, это: Допустим, у меня есть нормальный J! deloyment с моим компонентом com_mycomp внутри.

  • Я создаю папку за пределами кодовой базы joomla и называю ее "COMMON".
  • в "COMMON "я создаю папку" joomla"
  • в "COMMON/joomla " я создаю папку" myComp", которая будет содержать всю кодовую базу моего компонент
  • в "COMMON/joomla / myComp" я использую структуру папок Joomla и I движение(не копировать) 'components/com_mycomp', 'administrator/components/com_mycomp' и 'media/com_mycomp' внутри него.
  • затем я возвращаюсь туда, откуда я удалил папки, и создаю ссылки в новые места.

таким образом, теперь можно создать репозиторий Git в COMMON/joomla/myComp.

очевидно, что эта среда должна быть локальная среда разработки, где вы можете настроить конфигурацию apache/php без последствий для безопасности, чтобы сделать эту работу. (Я не могу вспомнить, действительно ли мне пришлось делать какие - либо специальные изменения конфигурации, чтобы это работало-если он не проверяет журналы...)

на самом деле, это решение действительно решает другую проблему. Работая таким образом, вы можете символически связать папки кодовой базы вашего компонента с двумя различными развертываниями Joomla (A J!2.5.x и J3.X. x, например) и быть возможность разработки / проверки совместимости компонентов непосредственно с различными версиями.


этой статьи Джо ЛеБланк это одна из немногих вещей, которые я нашел относительно контроля версий в Joomla!: http://joomlaablog.blogspot.it/2010/11/how-to-track-your-joomla-project-with.html

есть две общие стратегии, которые вы можете использовать для использования Git с Joomla: либо отслеживать всю установку Joomla, либо отслеживать a конкретное расширение. Главный сдерживающий фактор для отслеживания самого Joomla Git-это чистый размер Joomla кодовая база. В то время как Git разумно быстро, она еще может быть излишним, чтобы отслеживать всю установку Joomla если вы добавляете один шаблон или модуль.

с другой стороны, положить все в Git позволяет определите, когда патчи были применены к сайту Joomla. Это может быть полезно, когда вы пытаетесь отследить проблему до определенного исправления. Кроме того, если вы создаете несколько расширений, которые все разработаны чтобы работать вместе, у вас может не быть выбора но разместить весь сайт под контролем версий.

Если вы работаете над одним расширением, и вы знаете, что это единственный то, что будет частью проекта, может быть выгоднее отслеживать один каталог. только один компонент frontend, только бэкэнд компонент, модуль или шаблон-все кандидаты для отслеживания отдельно от установки Joomla. Трудно отслеживать Плагины таким образом, из-за того, что плагин .РНР файлы размещаются бок о бок в общих папках. Отслеживание полных компонентов таким образом также проблематично, поскольку изменения в бэкэнде могут повлиять на поведение в внешний интерфейс.


Если вы решите для первого варианта (отслеживать весь joomla), вы должны .gitignore все ядро и каждый раз, когда добавляется внешнее расширение. В противном случае это кошмар, когда кто-то устанавливает расширение и совершает его. Затем вы должны обнаружить это после вытягивания, и иногда это не работает. Также трудно управлять изменениями версии Joomla.

Я выступаю за разные репозитории для разных расширений, но я все еще ищу способ иметь одно РЕПО для весь компонент (admin + front+install). Любая идея (возможно, подмодули или поддерево mergin) ?


мы находимся в аналогичной ситуации с вами-дизайнерское агентство с сайтами Joomla.

мы используем Subversion, с каждым веб-сайтом в качестве репозитория. Когда мы начинаем проект, мы загружаем последнюю версию Joomla и размещаем ее в SVN. Затем мы проверяем сайт от SVN до локальной машины и работаем на нем, регистрируясь при необходимости.