- Введение
- Установка
- Требования
- Особенности
- Использование приложения
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
- будет активирован плагинlimit
git2reposync 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
.