Проект gitsync представляет собой:
gitsync
(src/core
) - которая реализует основные классы для синхронизации хранилища 1С с gitgitsync
(src/cmd
) - консольное приложение на основе библиотеки cli
Документация и описание публичного API библиотеки
opm install gitsync
Запасной споcоб, например, когда на сервере нет доступа к Интернет
gitsync*.ospx
из раздела releasesopm install -f <ПутьКФайлу>
ring
и `` - для работы с 1С старше версии > 8.3.11gitsync
версий 2.xv8storage
http
и tcp
tool1CD
- перенесена в предустановленный плагин tool1CD
sync
и export
оставлена только одна команда sync
, которая работает как команда export
в предыдущих версиях, при этом функциональность синхронизации с удаленным репозиторием (команды git pull
и git push
) перенесена в отдельный плагин sync-remote
plain
renames.txt
и переименования длинных файловall
)Раздел документации в разработке
gitsync
Данный шаг можно пропустить, если у Вас уже есть локальный репозиторий git
a. Если у Вас уже есть удаленный репозиторий (ранее выполнялась синхронизация с сервером git) - используйте команду clone
Синтаксис команды: gitsync clone [ОПЦИИ] PATH URL [WORKDIR]
Пример использования:
gitsync clone --storage-user Администратор --storage-pwd Секрет <путь_к_хранилищу_1С> <адрес_удаленного_репозитория> <рабочий_каталог>(необязательный)
Команда создаст локальный репозиторий в указанном каталоге путем копирования удаленного.
Справка по команде: gitsync clone --help
Больше примеров: gitsync usage clone
b. Если у Вас нет удаленного репозитория - используйте команду init
Синтаксис команды: gitsync init [ОПЦИИ] PATH [WORKDIR]
Пример использования:
gitsync init --storage-user Администратор --storage-pwd Секрет C:/Хранилище_1С/ C:/GIT/src
Команда создаст новый репозиторий (каталог) .git
в каталоге C:/GIT/src
, и наполнит его служебными файлами VERSION
и AUTHORS
.
На данном этапе хранилище 1С по пути C:/Хранилище_1С/
используется для наполнения файла AUTHORS
. Выгрузка хранилища 1С (синхронизация с репозиторием .git ) не выполняется.
gitsync init --storage-user Администратор --storage-pwd Секрет http:/www.storages.1c.com/repository.1ccr/ИмяХранилища C:/GIT/src
Вариант для подключения к хранилищу по протоколу http
Справка по команде: gitsync init --help
Больше примеров: gitsync usage init
Данный шаг можно пропустить, если у Вас уже установлено соответствие пользователей хранилища 1С и git
Для настройки соответствия между пользователями хранилища 1С и git-сервера предназначен файл AUTHORS
.
Файл заполняется в формате ini
.
Пример файла:
Администратор=Пользователь1 <admin-user@mail.com>
Вася Иванов=Другой Пользователь <user-user@mail.com>
слева указано имя пользователя хранилища 1С справа - представление имени пользователя репозитория git и его e-mail
С помощью e-mail выполняется связка пользователя с публичными репозиториями (например, Github или Bitbucket)
Данный шаг можно пропустить, если у Вас уже установлен номер версии в файле
VERSION
При выгрузке изменений хранилища 1С в каталог проекта (в рабочий каталог), gitsync ориентируется на номер последней выгруженной версии, указанный в файле VERSION
.
Номер версии в файле надо указать если Вы не хотите выгружать в git все версии хранилища 1С.
Файл заполняется в формате xml
.
Пример файла, в котором указано, что выгружено 10 версий:
<?xml version="1.0" encoding="UTF-8"?>
<VERSION>10</VERSION>
Файл можно отредактировать вручную или использовать команду set-version
.
Пример использования команды:
gitsync set-version <номер_версии> <рабочий_каталог>(необязательный)
Справка по команде: gitsync set-version --help
Для удобства использования команда set-version
имеет короткое название sv
.
Больше примеров: gitsync usage set-version
Команда sync
(синоним s) - выполняет синхронизацию хранилища 1С с git-репозиторием
Подробную справку по опциям и аргументам см.
gitsync sync --help
. Важно: описание опций команды sync при использовании плагина выводится только после активации этого плагина.
Команда: sync, s
Выполняет синхронизацию хранилища 1С с git-репозиторием
Строка запуска: gitsync sync [ОПЦИИ] PATH [WORKDIR]
Аргументы:
PATH Путь к хранилищу конфигурации 1С. (env $GITSYNC_STORAGE_PATH)
WORKDIR Каталог исходников внутри локальной копии git-репозитория. (env $GITSYNC_WORKDIR)
Опции:
-u, --storage-user пользователь хранилища конфигурации (env $GITSYNC_STORAGE_USER) (по умолчанию Администратор)
-p, --storage-pwd пароль пользователя хранилища конфигурации (env $GITSYNC_STORAGE_PASSWORD, $GITSYNC_STORAGE_PWD)
-e, --ext имя расширения для работы с хранилищем расширения(env $GITSYNC_EXTENSION)
Имя | Описание |
---|---|
GITSYNC_V8VERSION |
маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) |
GITSYNC_V8_PATH |
путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) |
GITSYNC_VERBOSE |
вывод отладочной информации в процессе выполнения |
GITSYNC_TEMP |
путь к каталогу временных файлов |
GITSYNC_EMAIL |
домен почты для пользователей git |
Имя | Описание |
---|---|
GITSYNC_WORKDIR |
рабочий каталог для команды |
GITSYNC_STORAGE_PATH |
путь к хранилищу конфигурации 1С. |
GITSYNC_STORAGE_USER |
пользователь хранилища конфигурации |
GITSYNC_STORAGE_PASSWORD |
пароль пользователя хранилища конфигурации |
GITSYNC_EXTENSION |
имя расширения |
WORKDIR | текущая рабочая директория |
-u, --storage-user | пользователь Администратор |
Примитивный вариант
gitsync sync C:/Хранилище_1С/ C:/GIT/src
Команда выполнит выгрузку версий хранилища 1С из C:/Хранилище_1С/
в репозиторий git в каталоге C:/GIT/src
. Пример учебный, на практике обычно требуется указать также имя пользователя хранилища и пароль.
Вариант для расширения конфигурации
gitsync sync --ext ИМЯ_Расширения C:/Хранилище_1С/ C:/GIT/src
Команда выполнит выгрузку версий хранилища расширения 1С из C:/Хранилище_1С/
для расширения ИМЯ_Расширения
в репозиторий git в каталоге C:/GIT/src
.
Вариант вызова команды в текущем рабочем каталоге
переменная окружения
GITSYNC_WORKDIR
не должна быть задана
cd C:/work_dir/
gitsync sync C:/Хранилище_1С/
Команда выполнит выгрузку версий хранилища 1С из C:/Хранилище_1С/
в репозиторий git в каталоге C:/work_dir
Вариант с указанием пользователя хранилища и пароля
gitsync sync --storage-user Admin --storage-pwd Secret C:/Хранилище_1С/ C:/work_dir/
Имя пользователя = Admin, пароль = Secret.
Использование синонимов (короткая версия предыдущего примера)
gitsync s -u Admin -p Secret C:/Хранилище_1С/ C:/work_dir/
# возможны варианты
# gitsync s -uAdmin -pSecret C:/Хранилище_1С/ C:/work_dir/
# gitsync s -u=Admin -p=Secret C:/Хранилище_1С/ C:/work_dir/
Указание исполняемого файла нужной версии платформы
gitsync --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
(приведен синтаксис для linux; вариант для Windows см. ниже).
Вызов команды без указания параметров, с использованием переменных окружения
linux:
export GITSYNC_WORKDIR=./work_dir/
export GITSYNC_STORAGE_PATH=./Хранилище_1С/
export GITSYNC_STORAGE_USER=Admin
export GITSYNC_STORAGE_PASSWORD=Secret
export GITSYNC_V8VERSION=8.3.7
# Указание конкретного исполняемого файла платформы 1С. Путь надо обернуть в кавычки если он содержит пробелы.
#export GITSYNC_V8_PATH=/opt/1C/v8.3/x86_64/1cv8
export GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина
export GITSYNC_TEMP=./temp/sync
gitsync s
windows:
set GITSYNC_WORKDIR=./work_dir/
set GITSYNC_STORAGE_PATH=./Хранилище_1С/
set GITSYNC_STORAGE_USER=Admin
set GITSYNC_STORAGE_PASSWORD=Secret
set GITSYNC_V8VERSION=8.3.7
# Указание конкретного исполняемого файла платформы 1С. Путь надо обернуть в кавычки если он содержит пробелы.
#set GITSYNC_V8_PATH="C:\Program Files (x86)\1cv8\8.3.12.1567\bin\1cv8.exe"
set GITSYNC_VERBOSE=true #Можно использовать Да/Ложь/Нет/Истина
set GITSYNC_TEMP=./temp/sync
gitsync s
Данный пункт можно пропустить, если Вам не требуется дополнительная функциональность синхронизации
Для расширения функциональности синхронизации предлагается механизм плагинов. Данный механизм реализован через подписки на события синхронизации, с возможностью переопределения стандартной обработки.
Для обеспечения управления плагинами реализована подкоманда plugins
, а так же ряд вложенных команд:
init
- Инициализация предустановленных плагинов (установка из поставляемого пакета)list
- Вывод списка плагиновenable
- Активизация установленных плагиновdisable
- Деактивизация установленных плагиновinstall
- Установка новых плагиновclear
- Удаление установленных плагиновhelp
- Вывод справки по выбранным плагинамПример использования:
gitsync plugins enable limit
- будет активирован плагин limit
gitsync plugins enable -a
- будут активированы все предустановленные плагиныgitsync plugins enable
- будет выведен список всех установленных плагинов для интерактивного выбора и активации выбранныхgitsync plugins list
- будет выведен список всех активированных плагиновgitsync plugins list -a
- будет выведен список всех установленных плагиновСправка по команде: gitsync plugins --help
Для удобства использования команда plugins
имеет короткое название p
.
Больше примеров: gitsync usage plugins
Для хранения установленных плагинов и списка активных плагинов используется каталог
локальных данных приложения
- для Windows это C:\Users\UserName\AppData\Local\gitsync\plugins
Список предустановленных плагинов:
Для инициализации предустановленных плагинов необходимо выполнить команду
gitsync plugins init
. Описание используемых плагинами опций см. в справке к команде sync.
increment
- включает режим инкрементальной выгрузки конфигурации в исходники.sync-remote
- добавляет опции команды sync
для синхронизации с удаленным репозиторием git (команды git pull
и git push
)limit
- позволяет ограничить количество выгружаемых версий за один запуск, а так же указать минимальную и/или максимальную версию хранилища для выгрузкиcheck-authors
- блокирует выгрузку версии, если автор версии хранилища отсутствует в файле AUTHORS
check-comments
- добавляет опции команды sync
для проверки наличия комментария у версии хранилища, а также для проверки заполнения комментарияsmart-tags
- устанавливает тег равный версии конфигурации при смене версии конфигурации (не путать с версией хранилища). А также добавляет опции команды sync
для автоматической установки метки git (команда git tag
) равной версии хранилища (в формате "v.номер").unpackForm
- выполняет распаковку обычных форм на исходники. Добавляет опции команды sync
для переименования объектов обычных форм.tool1CD
- заменяет использование штатных механизмов 1С на приложение tool1CD
при выгрузкеdisable-support
- снимает конфигурацию с поддержки перед выгрузкой в исходникиedtExport
- добавляет возможность выгрузки в формате EDT. Для работы плагина необходимо установить EDT.gitsync
Раздел документации в разработке
Раздел документации в разработке
Проект gitsync
поддерживает ряд подписок на события
Сборка производится в 2-х режимах:
Сборка обычного пакета (без зависимостей)
opm build .
В этом варианте в сборку не добавляются предустановленные пакеты. Их надо будет устанавливать отдельно.
Сборка пакета с зависимостями
opm build -mf ./build_packagedef .
В сборку будут добавлены пакеты из репозиториев:
opm
- из ветки developgitsync-pre-plugins
- из ветки developДоработка проводится по git-flow. Жду ваших PR.
Смотри файл LICENSE
.