- Введение
- Установка
- Требования
- Особенности
- Использование приложения
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хранилищами - Расширяемость функционала за счет использования механизма подписок на события
Раздел документации в разработке
Данный пункт можно пропустить, если Вам не требуется дополнительная функциональность синхронизации
Для расширения функциональности синхронизации предлагается механизм плагинов. Данный механизм реализован через подписки на события синхронизации, с возможностью переопределения стандартной обработки.
Для обеспечения управления плагинами реализована подкоманда 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 s
windows:
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-plugins
Раздел документации в разработке
Проект git2reposync поддерживает ряд подписок на события
Сборка производится в 2-х режимах:
- Сборка обычного пакета (без зависимостей)
opm run build .
при данной сборки не собираются предустановленные пакеты. Их надо будет устанавливать отдельно
- Сборка пакета с зависимостями
opm run build -mf ./build_packagedef .
При данной сборке будут дополнительно собраны из репозиториев:
opm- из ветки developgit2reposync-pre-plugins- из вертки develop
Доработка проводится по git-flow. Жду ваших PR.
Смотри файл LICENSE.