/GitConverter

Primary Language1C Enterprise

1С:ГитКонвертер

Конфигурация 1С, односторонняя синхронизация хранилища конфигураций 1С в репозиторий Git.

Корректное переименование истории объектов метаданных при переименовании их в хранилище 1С по UUID'дам.

Основные возможности

  • Сконвертировать существующее хранилище 1С в репозиторий git
  • Обновлять изменения из хранилища в репозиторий
  • Параллелизировать загрузку истории хранилища из копий хранилища
  • Ограничение нагрузки на сервер с помощью очередей
  • Возможно "сращивать" историю в git, если хранилище 1С обрезалось или начиналось заново.
  • Сообщение гиту команды git mv старый_файл новый_файл при переименовании метаданных
  • Выгружать только изменения конфигурации. Доступно для Платформы 8.3.10 и выше, требуется использовать "очереди"

Необходимые компоненты

Начальная настройка

Настройка базы ГитКонвертера

  1. Разместите базу ГитКонвертера на сервере 1С. Работа в файловом режиме может быть использована только в демонстрационных целях.
  2. Заполните константу "Путь к версиям платформы на сервере", где располагаются файлы Конфигуратора 1cv8(.exe) в формате: C:\Program files (x86)\1cv8\%ВерсияПлатформы%\bin %ВерсияПлатформы% - в параметр будет подставлена текущая версия хранилища.
  3. Для ограничения производительности можно включить константу "Использовать очереди выполнения"

Настройка сервера 1С

Для ИБ ГитКонвертера на сервере 1С необходимо переключить формат журнала регистрации на старый режим.

Для этого необходимо в каталог журнала регистрации ИБ скопировать пустой файл с именем: 1Cv8.lgf. Для больших проектов рекомендуется настроить удаление или бэкапирование файлов журнала регистрации.

Так же рекомендуется переключить регистрацию событий - только ошибки: Конфигуратор - Администрирование - Настройка журнала регистрации... = Регистрировать ошибки с минимальной периодичностью.

Настройка конвертации хранилища 1С

Рекомендуется использовать сервер хранилищ конфигураций 1С.

Для оптимальной работы сервера хранилищ настройте Размер глобального кэша в "Администрировании" в 1,5-2 раза больше количества параллельных потоков (если используются "копии хранилища") получения версий * размер одной версии.

Параметры конвертации

  • Укажите адрес хранилища. При использовании сервера хранилища рекомендуется настроить в администрировании хранилища параметр "Глобальный кэш версий конфигурации" чтобы количество кэшированных версий было больше параллельно получаемых версий.
  • Укажите версию платформы, рекомендуется использовать 8.3.9.1818 и выше.
  • Укажите начальную версию в хранилище, если текущее хранилище было обрезано и первая версия больше 1.
  • Если указана версия окончания - не будет выполняться запрос новых версий.
  • Укажите расписание запусков
  • Укажите Каталог выгрузки версий, в котором будут создаваться временные каталоги с номерами версий и выгрузкой данных.
  • Желательно ограничить количество подготавливаемых (выгружаемых) версий - рекомендуется установить значение исходя из Размер базы с версией + Размер выгрузки в xml и размера жесткого диска.
  • Укажите Минимальное количество метаданных - число файлов и каталогов выгрузки в xml - необходимо для контроля, что все файлы выгружены. Рекомендуется устанавливать 90-95% от текущей версии, чтобы учесть возможность удаления метаданных (т.е. сокращения количества файлов)
  • Не рекомендуется устанавливать Удаление конфигураций поставщиков, если планируется загружать конфигурацию из файлов и обновлять конфигурации поставщиков. Опция позволяет оптимизировать размер хранилища git и не хранить объемные файлы *.cf.
  • Установите Удалять временные данные версии после коммита - рекомендуется на реальных проектах.
  • Выгружать изменения - позволяет на Платформе 8.3.10 и выше выгружать только изменения. Доступно при использовании "Очередей"
  • Локальный каталог git рекомендуется указывать на одном логическом диске с Каталогом выгрузки версий - будет использовано перемещение версий возможностями ОС, иначе будет выполняться копирование.
  • Каталог выгрузки в репозитории - относительный путь к каталогу выгрузки внутри репозитория. Рекомендуется указывать имя проекта для будущей совместимости с рабочим пространством 1C:EDT или оставить пустым.
  • Установите флаг Выполнять коммиты для выполнения коммитов. Отключение может быть необходимо с целью временно приостановить работу конвертера.
  • Установите флаг Обрабатывать все очереди, если используются очереди в ИБ.

Нажмите кнопку "Создать гит репозиторий" перед конвертацией - команда выполняет инициализацию репозитория и начальную настройку, специфичную для конфигураций 1С.

Дополнительная настройка репозитория Git

По умолчанию создается файл исключений .gitignore, в который добавляются файлы DumpFilesIndex.txt и ConfigDumpInfo.xml - не требуемые для работы с исходными файлами конфигурации 1С.

Для увеличения быстродействия репозитория git можно использовать расширение git lfs (https://git-lfs.github.com)

Если используется сервер репозиториев Git, необходимо убедиться, что он поддерживает это расширение и включить настройки для проекта. Например, GitLab, GitHub, BitBucket - поддерживают.

Выполнить начальную настройку репозитория до выполнения первого коммита:

git lfs install

Включить отслеживание бинарных файлов конфигурации

git lfs track "*.cf"
git lfs track "*.bin"
git lfs track "*.png"
git lfs track "*.gif"
git lfs track "*.bmp"
git lfs track "*.jpg"
git lfs track "*.zip"

В этом примере - все файлы конфигураций поставщиков, файлы макетов с "Двоичными данными" и картинки из конфигурации попадут в lfs.

Копии хранилища

Копии хранилища используются для ускорения получения версий из хранилища.

  • Возможно использовать тот же адрес серверного хранилища конфигураций, но с разными пользователями. Количество "копий" влияет на размер создаваемого глобального кэша версий на сервере хранилища 1С. Желательно установить кэш в настройках сервера хранилищ 1С в полтора раза больше, чем количество копий в ГитКонвертере.

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

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

Очереди выполнения

Если включена константа "Использовать очереди выполнения", то для каждого хранилища конфигураций необходимо указать 2 очереди:

  • Выгрузка метаданных. Начиная с версии Платформы 8.3.10 возможно использовать выгрузку изменений - для этого необходимо выгружать версии строго последовательно и не рекомендуется создавать более одной очереди на выгрузку.
  • Загрузка метаданных

Возможно указать диапазоны количества версий для каждой очереди для разграничения "рабочей зоны".

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

Очередь может быть общей на всю базу или привязанной к конкретному хранилищу. Для очереди общего типа выбор версий для обработки выполняется по дате версии - это следует учитывать при конвертации проектов с длинной историей и более "молодых" проектов в одной базе ГитКонвертера.

Информация пользователей

Хранилище 1С использует для идентификации Пользователя, а в репозитории git основным идентификатором является email и имя пользователя. Для этих целей предназначен регистр сведений Информация пользователей, позволяющий указать соответствие пользователей хранилищ пользователям репозитория git.

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

Пользователи могут быть указаны общие для всех хранилищ или с уточнением по хранилищам.