Skip to content

pumbaEO/git2reposync

Repository files navigation

Синхронизация хранилища 1С с репозиторием git

Обсудить ЧАТ ДЛЯ ОБЩЕНИЯ https://gitter.im/EvilBeaver/oscript-library

GitHub release

Оглавление

Введение

Проект является форком проекта gitsync см. https://github.com/oscript-library/gitsync Проект git2reposync представляет собой:

  1. Библиотеку git2reposync (src/core) - которая реализует основные классы для синхронизации хранилища git c 1С
  2. Приложение git2reposync (src/cmd) - консольное приложение на основе библиотеки cli

Документация и описание публичного API библиотеки

Установка

Вручную

  1. Скачать файл git2reposync*.ospx из раздела releases
  2. Воспользоваться командой:
$ opm install -f <ПутьКФайлу>
  1. Запустить командой git2reposync

Требования

  • утилита ring и `` - для синхронизации с edt проектами

Особенности

  • обходит коммиты для синхронизации в обратном, т.е. хронологическом порядке, если указываем sha комитов списком abc1234..cbc56778, то первым коммитом для синхронизации из полученного диапазона будет cbc56778
  • при синхронизации ппроверяет необходимость коммита поиском ключевого слова в списке истории хранилища git2reposha:" + shacommit, если такая версия уже есть значит пропускаем ее
  • Работа с хранилищем конфигурации реализовано на основании библиотеки v8storage
  • Реализована поддержка работы с http и tcp хранилищами
  • Расширяемость функционала за счет использования механизма подписок на события

Описание функциональности

Раздел документации в разработке

Использование приложения git2reposync

Настройка плагинов синхронизации

Данный пункт можно пропустить, если Вам не требуется дополнительная функциональность синхронизации

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

Для обеспечения управления плагинами реализована подкоманда plugins, а так же ряд вложенных команд:

  1. init - Инициализация предустановленных плагинов
  2. list - Вывод списка плагинов
  3. enable - Активизация установленных плагинов
  4. disable - Деактивизация установленных плагинов
  5. install - Установка новых плагинов
  6. clear - Очистка установленных плагинов
  7. 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

  1. edt - обеспечивает поддержку сборки cf из edt конфигураций
  2. 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

Раздел документации в разработке

Доработка и разработка плагинов

Как разработать свой или доработать текущие плагины

  1. Как создать свой плагин
  2. Доработка предустановленных плагинов производится в отдельном репозитории git2reposync-plugins

Механизм подписок на события

Раздел документации в разработке

Проект git2reposync поддерживает ряд подписок на события

Сборка проекта

Сборка производится в 2-х режимах:

  1. Сборка обычного пакета (без зависимостей)

opm run build .

при данной сборки не собираются предустановленные пакеты. Их надо будет устанавливать отдельно

  1. Сборка пакета с зависимостями

opm run build -mf ./build_packagedef .

При данной сборке будут дополнительно собраны из репозиториев:

  • opm - из ветки develop
  • git2reposync-pre-plugins - из вертки develop

Доработка

Доработка проводится по git-flow. Жду ваших PR.

Лицензия

Смотри файл LICENSE.