git2reposync
git2reposync copied to clipboard
Синхронизация хранилища 1С с репозиторием git
Оглавление
- Введение
- Установка
- Вручную
- Через пакетный менеджер opm
- Требования
- Особенности
- Описание функциональности
- Использование приложения
git2reposync- Настройка плагинов синхронизации
- Синхронизация
- Справка по использованию команды
- Глобальные переменные окружения
- Переменные окружения команды
- Значения по умолчанию
- Примеры использования
- Использование библиотеки
git2reposync - Доработка и разработка плагинов
- Механизм подписок на события
- Сборка проекта
- Доработка
- Лицензия
Введение
Проект является форком проекта gitsync см. https://github.com/oscript-library/gitsync Проект git2reposync представляет собой:
- Библиотеку
git2reposync(src/core) - которая реализует основные классы для синхронизации хранилища git c 1С - Приложение
git2reposync(src/cmd) - консольное приложение на основе библиотекиcli
Документация и описание публичного API библиотеки
Установка
Вручную
- Скачать файл
git2reposync*.ospxиз раздела releases - Воспользоваться командой:
$ opm install -f <ПутьКФайлу>
- Запустить командой
git2reposync
Требования
- утилита
ringи `` - для синхронизации с edt проектами
Особенности
- обходит коммиты для синхронизации в обратном, т.е. хронологическом порядке, если указываем sha комитов списком abc1234..cbc56778, то первым коммитом для синхронизации из полученного диапазона будет cbc56778
- при синхронизации ппроверяет необходимость коммита поиском ключевого слова в списке истории хранилища
git2reposha:" + shacommit, если такая версия уже есть значит пропускаем ее - Работа с хранилищем конфигурации реализовано на основании библиотеки
v8storage - Реализована поддержка работы с
httpиtcpхранилищами - Расширяемость функционала за счет использования механизма подписок на события
Описание функциональности
Раздел документации в разработке
Использование приложения git2reposync
Настройка плагинов синхронизации
Данный пункт можно пропустить, если Вам не требуется дополнительная функциональность синхронизации
Для расширения функциональности синхронизации предлагается механизм плагинов. Данный механизм реализован через подписки на события синхронизации, с возможностью переопределения стандартной обработки.
Для обеспечения управления плагинами реализована подкоманда plugins, а так же ряд вложенных команд:
init- Инициализация предустановленных плагиновlist- Вывод списка плагиновenable- Активизация установленных плагиновdisable- Деактивизация установленных плагиновinstall- Установка новых плагиновclear- Очистка установленных плагиновhelp- Вывод справки по выбранным плагинам
Пример использования:
git2reposync plugins enable edt- будет активирован плагинlimitgit2reposync plugins list- будет выведен список всех активированных плагиновgit2reposync plugins list -a- будет выведен список всех установленных плагинов
Справка по команде plugins: git2reposync plugins --help
Для удобства использования команда plugins имеет короткое название p.
Больше примеров можно увидеть, использовав команду git2reposync usage plugins
Для хранения установленных плагинов и списка активных плагинов используется каталог
локальных данных приложения
Список предустановленных плагинов:
Для инициализации предустановленных плагинов необходимо выполнить команду
git2reposync plugins init
edt- обеспечивает поддержку сборки cf из edt конфигурацийrunner- обеспечивает сборку с с помощью фреймворка vanessa-runner полезно для толстых форм.
Синхронизация
Команда sync (синоним s) - выполняет синхронизацию хранилища 1С с git-репозиторием
Подробную справку по опциям и аргументам см.
git2reposync sync --help
Справка по использованию команды
Команда: sync, s
Выполняет синхронизацию хранилища git-репозиторием с 1С
Строка запуска: git2reposync sync [ОПЦИИ] PATH [WORKDIR]
Аргументы:
PATH Путь к хранилищу конфигурации 1С. (env $git2reposync_STORAGE_PATH)
WORKDIR Каталог исходников внутри локальной копии git-репозитория. (env $git2reposync_WORKDIR)
Опции:
-u, --storage-user пользователь хранилища конфигурации (env $git2reposync_STORAGE_USER) (по умолчанию Администратор)
-p, --storage-pwd пароль пользователя хранилища конфигурации (env $git2reposync_STORAGE_PASSWORD, $git2reposync_STORAGE_PWD)
-m --merge-file путь к файлу mergesettings, определяющий как будет происходить сравнение объединение в 1с,
по умолчанию в корне проекта merge.xml, пример можно найти в .\templates\mergesettingsRecursor.xml
Глобальные переменные окружения
| Имя | Описание |
|---|---|
git2reposync_V8VERSION |
маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) |
git2reposync_V8_PATH |
путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) |
git2reposync_VERBOSE |
вывод отладочной информации в процессе выполнения |
git2reposync_TEMP |
путь к каталогу временных файлов |
Переменные окружения команды
| Имя | Описание |
|---|---|
git2reposync_WORKDIR |
рабочий каталог для команды |
git2reposync_STORAGE_PATH |
путь к хранилищу конфигурации 1С. |
git2reposync_STORAGE_USER |
пользователь хранилища конфигурации |
git2reposync_STORAGE_PASSWORD |
пароль пользователя хранилища конфигурации |
Значения по умолчанию
| WORKDIR | текущая рабочая директория |
| -u, --storage-user | пользователь Администратор |
Примеры использования
-
Простое использование
git2reposync sync C:/Хранилище_1С/ C:/GIT/srcДанная команда выполнить синхронизацию хранилища 1С по пути
C:/Хранилище_1С/и репозитория git в каталогеC:/GIT/src -
Инициализация в текущем рабочем каталоге,
переменная окружения
git2reposync_WORKDIRне должна быть заданаcd C:/work_dir/ git2reposync sync C:/Хранилище_1С/Данная команда выполнить синхронизацию хранилища 1С по пути
C:/Хранилище_1С/и репозитория git в каталогеC:/work_dir -
Инициализация в с указанием пользователя и пароля.
git2reposync sync --storage-user Admin --storage-pwd=Secret C:/Хранилище_1С/ C:/work_dir/Данная команда выполнить синхронизацию хранилища 1С по пути
C:/Хранилище_1С/и репозитория git в каталогеC:/work_dirИспользуя для подключения к хранилищу 1С пользователяAdminи парольSecret -
Использование синонимов (короткая версия предыдущего примера)
git2reposync s -uAdmin -p=Secret C:/Хранилище_1С/ C:/work_dir/Данная команда выполнить синхронизацию хранилища 1С по пути
C:/Хранилище_1С/и репозитория git в каталогеC:/work_dirИспользуя для подключения к хранилищу 1С пользователяAdminи парольSecret -
Использование конкретной исполняемого файла платформы
git2reposync --v8-path /opt/1C/v8.3/x86_64/1cv8 s -uAdmin -p=Secret C:/Хранилище_1С/ C:/work_dir/Данная команда синхронизации выполнится с использованием исполняемого файла платформы
/opt/1C/v8.3/x86_64/1cv8для хранилища 1С по путиC:/Хранилище_1С/и репозитория git в каталогеC:/work_dirИспользуя для подключения к хранилищу 1С пользователяAdminи парольSecret -
Использование только переменных окружения
linux:
export git2reposync_WORKDIR=./work_dir/ export git2reposync_STORAGE_PATH=./Хранилище_1С/ export git2reposync_STORAGE_USER=Admin export git2reposync_STORAGE_PASSWORD=Secret export git2reposync_V8VERSION=8.3.7 # Указание конкретного исполняемого файла платформы 1С #export git2reposync_V8_PATH=/opt/1C/v8.3/x86_64/1cv8 # Надо обернуть в кавычки если путь содержит пробелы export git2reposync_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина export git2reposync_TEMP=./temp/sync git2reposync swindows:
set git2reposync_WORKDIR=./work_dir/ set git2reposync_STORAGE_PATH=./Хранилище_1С/ set git2reposync_STORAGE_USER=Admin set git2reposync_STORAGE_PASSWORD=Secret set git2reposync_V8VERSION=8.3.7 # Указание конкретного исполняемого файла платформы 1С #set git2reposync_V8_PATH="C:\Program Files (x86)\1cv8\8.3.12.1567\bin\1cv8.exe" # Надо обернуть в кавычки если путь содержит пробелы set git2reposync_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина set git2reposync_TEMP=./temp/sync git2reposync sДанная команда выполнить синхронизацию хранилища 1С по пути
C:/Хранилище_1С/и репозитория git в каталогеC:/work_dirИспользуя для подключения к хранилищу 1С пользователяAdminи парольSecret -
EDT
Инициализируем плагины
git2reposync p initВключаем edt
git2reposync p e edtЗапускаем синхронизацию с указанием необходимых для edt параметров
sync -u admin -W C:\Users\shenja\workspace -P C:\Users\shenja\Documents\git\Conf C:\Users\shenja\Documents\git\repo_develop C:\Users\shenja\Documents\git\Confгде
C:\Users\shenja\Documents\git\Conf путь git -репозитарию edt проекта, та папка где есть DT-INF
-W C:\Users\shenja\workspace - путь к workspace указаному при запуске edt
Использование библиотеки git2reposync
Раздел документации в разработке
Доработка и разработка плагинов
Как разработать свой или доработать текущие плагины
- Как создать свой плагин
- Доработка предустановленных плагинов производится в отдельном репозитории git2reposync-plugins
Механизм подписок на события
Раздел документации в разработке
Проект git2reposync поддерживает ряд подписок на события
Сборка проекта
Сборка производится в 2-х режимах:
- Сборка обычного пакета (без зависимостей)
opm run build .
при данной сборки не собираются предустановленные пакеты. Их надо будет устанавливать отдельно
- Сборка пакета с зависимостями
opm run build -mf ./build_packagedef .
При данной сборке будут дополнительно собраны из репозиториев:
opm- из ветки developgit2reposync-pre-plugins- из вертки develop
Доработка
Доработка проводится по git-flow. Жду ваших PR.
Лицензия
Смотри файл LICENSE.