Подтвердить что ты не робот

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

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

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

Мои главные вопросы:

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

Ответ 1

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

Ответ 2

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

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

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

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

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

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

Ответ 5

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

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