Как лучше всего управлять установками TYPO3 с помощью git?

Здравствуйте, я уже давно хотел поговорить об этом, но я бы хотел использовать git для поддержки некоторых сайтов разработки typo3. Я сделал кое-что, и самый информативный (хром переведенный сайт) информация по этому вопросу не ясна, но заставляла меня думать. Я хотел бы знать, как настроить управляемое репо git, и если есть некоторые/другие папки, которые я должен игнорировать при настройке репо, что я должен опасаться, лучшие практики и т.д. Я решил, что с каждая версия, дамп db будет выполняться отдельно, что соответствует вехе, потому что на данный момент я не уверен, как бороться с этим аспектом управления версиями CMS.

Ответ 1

Существует типичный .gitignore

/fileadmin/user_upload/
/fileadmin/_temp_/

/uploads/

/typo3conf/temp_CACHED*
/typo3conf/temp_fieldInfo.php
/typo3conf/localconf_local.php

/typo3/
/t3lib/
/typo3temp/

Имейте в виду, что при использовании TYPO3 с git вы не должны устанавливать расширение на пульте дистанционного управления с помощью Extension Manager!

Вместо этого импортируйте ext локально, установите его локально, а затем скопируйте и нажмите файлы ext и измените localconf.php на удаленный сервер.

В конце localconf.php включить localconf_local.php (игнорируется)

@include('localconf_local.php');

Это позволит переопределить ie. учетные данные для БД или пользовательский путь ImageMagick без изменения оригинала localconf.php. Каждый разработчик, конечно же, записывает свои собственные значения в localconf_local.php.

Типичные папки TYPO3, игнорируемые в .gitignore, должны создаваться вручную в каждом экземпляре, т.е.

typo3temp

fileadmin/user_upload

Конечно, вам также нужно скачать TYPO3 sorces (TYPO3, t3lib папки) - нет никакого смысла держать их под контролем версий.

Другие вещи, такие как uploads, должны быть загружены вручную с пульта дистанционного управления, поэтому лучше написать script, который упакует его, и у каждого разработчика будет возможность загрузить его с помощью некоторой ссылки. Вы не можете добавить это в git repo, поскольку эти файлы только создаются при создании элемента контента, поэтому, если вы не будете игнорировать их, вы рискуете столкнуться с огромным слиянием.

Ответ 2

Я хотел бы добавить некоторые аспекты для biesiors очень хороший ответ: по моему опыту, лучшая стратегия заключается в том, чтобы поставить fileadmin/ и typo3conf/ под контроль версий, и ничто другое вначале. Если вы используете расширения, вы будете использовать последнюю версию только из репозитория TER. Конфигурация расширения (настройка typoscript, locallang values) будет размещена во внешних файлах в файле fileadmin/. Пример структуры папок:

fileadmin/
- css/
- images/
- javascript/
- scripts/
- templates/
- - html/
- - templavoila/
- - typoscript/
- - xml/

Не храните в базе данных какую-либо информацию о типографике - оттуда она не может быть версией.

Поместите .gitignore там, где это необходимо. Мы также игнорируем typo3conf/ext/ и typo3conf/l10n/. Зачем? Если мы будем писать собственные расширения (или модифицировать существующие), мы добавим typo3conf/ext/my_extensionname/ в другой репозиторий. Таким образом, само расширение может быть хорошо сохранено, особенно если оно используется в нескольких проектах. И неизменные расширения не обязательно должны быть версиями вообще.

Следуйте рекомендациям @include('localconf_local.php'); - это хорошая практика.

Эта настройка добавляет более высокий спрос на дисциплину кодирования, но вы будете вознаграждены! Мы успешно работаем вот так для более чем 12 проектов в команде из двух человек.