From e21afdcf4962dce3e2b0fe406825dde8b8a3a6f8 Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 1 Feb 2026 14:40:47 +0300 Subject: [PATCH 1/7] upd readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавил абзац про обновление встроенных плагинов после обновления gitsync, внес другие мелкие исправления --- readme.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index ef194c8c..005a61f7 100644 --- a/readme.md +++ b/readme.md @@ -353,10 +353,11 @@ Больше примеров: `gitsync usage plugins` -> Для хранения установленных плагинов и списка активных плагинов используется каталог `локальных данных приложения` - для Windows это C:\Users\UserName\AppData\Local\gitsync\plugins +Для инициализации предустановленных плагинов необходимо выполнить команду `gitsync plugins init`. Описание используемых плагинами опций см. в справке к команде sync. + +> ВНИМАНИЕ! После обновления gitsync для **обновления** встроенных плагинов необходимо однократно выполнить команду `gitsync plugins init` Список предустановленных плагинов: -> Для инициализации предустановленных плагинов необходимо выполнить команду `gitsync plugins init`. Описание используемых плагинами опций см. в справке к команде sync. 1. `increment` - включает режим инкрементальной выгрузки конфигурации в исходники. Выгружается не вся конфигурация, а только те объекты, версия которых отличается от версии, имеющейся в каталоге. См. [DumpConfigToFiles](https://its.1c.ru/db/v8319doc#bookmark:adm:TI000000493:dumpconfigtofiles), опция update. @@ -370,6 +371,8 @@ 9. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники 10. `edtExport` - добавляет возможность выгрузки в формате EDT. Для работы плагина необходимо установить EDT. +Все установленные плагины расположены по пути `%USERPROFILE%\AppData\Local\gitsync\plugins` для Windows или `$HOME/.local/share` для Linux. В этом же каталоге находится файл `plugins.json`, который хранит информацию об активных и неактивных плагинах. В случае каких-либо ошибок, связанных с работой плагинов, можно удалить этот каталог, а затем инициализировать и активировать нужные плагины заново. + ## Использование библиотеки `gitsync` @@ -422,3 +425,4 @@ ## Лицензия Смотри файл [`LICENSE`](./LICENSE). + From 2ec42ea4929826fc6522a2ac7712c0ef5687b410 Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sat, 28 Mar 2026 19:28:55 +0300 Subject: [PATCH 2/7] fix eol --- readme.md | 856 +++++++++++++++++++++++++++--------------------------- 1 file changed, 428 insertions(+), 428 deletions(-) diff --git a/readme.md b/readme.md index 005a61f7..2d9df07e 100644 --- a/readme.md +++ b/readme.md @@ -1,428 +1,428 @@ -Синхронизация хранилища 1С с репозиторием git -============================================= -[![Last release](https://img.shields.io/github/v/release/oscript-library/gitsync?include_prereleases&label=last%20release&style=badge)](https://github.com/oscript-library/gitsync/releases/latest) -[![GitHub issues](https://img.shields.io/github/issues-raw/oscript-library/gitsync?style=badge)](https://github.com/oscript-library/gitsync/issues) -[![oscript_library](https://img.shields.io/badge/chat-telegram-blue)](https://t.me/oscript_library) - -Оглавление -========== - - - -- [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git) -- [Оглавление](#оглавление) - - [Введение](#введение) - - [Установка](#установка) - - [Через пакетный менеджер opm](#через-пакетный-менеджер-opm) - - [Вручную](#вручную) - - [Требования](#требования) - - [Особенности](#особенности) - - [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x) - - [Описание функциональности](#описание-функциональности) - - [Использование приложения `gitsync`](#использование-приложения-gitsync) - - [Подготовка](#подготовка) - - [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального) - - [Установка соответствия пользователей](#установка-соответствия-пользователей) - - [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации) - - [Синхронизация](#синхронизация) - - [Справка по использованию команды](#справка-по-использованию-команды) - - [Глобальные переменные окружения](#глобальные-переменные-окружения) - - [Переменные окружения команды](#переменные-окружения-команды) - - [Значения по умолчанию](#значения-по-умолчанию) - - [Примеры использования](#примеры-использования) - - [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации) - - [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync) - - [Доработка и разработка плагинов](#доработка-и-разработка-плагинов) - - [Механизм подписок на события](#механизм-подписок-на-события) - - [Сборка проекта](#сборка-проекта) - - [Доработка](#доработка) - - [Лицензия](#лицензия) - - - - -## Введение - -Проект *gitsync* представляет собой: - -1. Библиотеку `gitsync` (`src/core`) - которая реализует основные классы для синхронизации хранилища 1С с git -2. Приложение `gitsync` (`src/cmd`) - консольное приложение на основе библиотеки [`cli`](https://github/khorevaa/cli) - -[Документация и описание публичного API библиотеки](docs/README.md) - - -## Установка - - -### Через пакетный менеджер opm - -1. Установить командой `opm install gitsync` - - -### Вручную -> Запасной споcоб, например, когда на сервере нет доступа к Интернет -1. Скачать файл `gitsync*.ospx` из раздела [releases](https://github.com/oscript-library/gitsync/releases) -2. Установить командой: `opm install -f <ПутьКФайлу>` - - -## Требования - -* утилита `ring` и `` - для работы с 1С старше версии > 8.3.11 - - -## Особенности - - - -### Отличия от `gitsync` версий 2.x - -* Полностью другая строка вызова приложения, а именно используется стандарт POSIX. -* Работа с хранилищем конфигурации реализована через библиотеку [`v8storage`](https://github.com/khorevaa/v8storage) -* Реализована поддержка работы с хранилищем по протоколу `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`. - -Пример файла: - -```ini -Администратор=Пользователь1 -Вася Иванов=Другой Пользователь -``` - -слева указано имя пользователя хранилища 1С -справа - представление имени пользователя репозитория git и его e-mail - -С помощью e-mail выполняется связка пользователя с публичными репозиториями (например, Github или Bitbucket) - - -#### Установка номера начальной версии хранилища 1С для синхронизации - -> Данный шаг можно пропустить, если у Вас уже установлен номер версии в файле `VERSION` - -При выгрузке изменений хранилища 1С в каталог проекта (в рабочий каталог), gitsync ориентируется на номер последней выгруженной версии, указанный в файле `VERSION`. -Номер версии в файле надо указать если Вы не хотите выгружать в git все версии хранилища 1С. - -Файл заполняется в формате `xml`. - -Пример файла, в котором указано, что выгружено 10 версий: - -```xml - -10 -``` - -Файл можно отредактировать вручную или использовать команду `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`** не должна быть задана - - ```sh - cd C:/work_dir/ - gitsync sync C:/Хранилище_1С/ - ``` - Команда выполнит выгрузку версий хранилища 1С из `C:/Хранилище_1С/` в репозиторий git в каталоге `C:/work_dir` - -* Вариант с указанием пользователя хранилища и пароля - - ```sh - gitsync sync --storage-user Admin --storage-pwd Secret C:/Хранилище_1С/ C:/work_dir/ - ``` - Имя пользователя = Admin, пароль = Secret. - -* Использование синонимов (короткая версия предыдущего примера) - - ```sh - 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/ - ``` - -* Указание исполняемого файла нужной версии платформы - - ```sh - 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: - ```sh - 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: - ```cmd - 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`, а так же ряд вложенных команд: - -1. `init` - Инициализация предустановленных плагинов (установка из поставляемого пакета) -1. `list` - Вывод списка плагинов -1. `enable` - Активизация установленных плагинов -1. `disable` - Деактивизация установленных плагинов -1. `install` - Установка новых плагинов -1. `clear` - Удаление установленных плагинов -1. `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` - -Для инициализации предустановленных плагинов необходимо выполнить команду `gitsync plugins init`. Описание используемых плагинами опций см. в справке к команде sync. - -> ВНИМАНИЕ! После обновления gitsync для **обновления** встроенных плагинов необходимо однократно выполнить команду `gitsync plugins init` - -Список предустановленных плагинов: - -1. `increment` - включает режим инкрементальной выгрузки конфигурации в исходники. - Выгружается не вся конфигурация, а только те объекты, версия которых отличается от версии, имеющейся в каталоге. См. [DumpConfigToFiles](https://its.1c.ru/db/v8319doc#bookmark:adm:TI000000493:dumpconfigtofiles), опция update. -2. `sync-remote` - добавляет опции команды `sync` для синхронизации с удаленным репозиторием git (команды `git pull` и `git push`) -3. `limit` - позволяет ограничить количество выгружаемых версий за один запуск, а так же указать минимальную и/или максимальную версию хранилища для выгрузки -4. `check-authors` - блокирует выгрузку версии, если автор версии хранилища отсутствует в файле `AUTHORS` -5. `check-comments` - добавляет опции команды `sync` для проверки наличия комментария у версии хранилища, а также для проверки заполнения комментария -6. `smart-tags` - устанавливает тег равный версии конфигурации при смене версии конфигурации (не путать с версией хранилища). А также добавляет опции команды `sync` для автоматической установки метки git (команда `git tag`) равной версии хранилища (в формате "v.номер"). -7. `unpackForm` - выполняет распаковку обычных форм на исходники. Добавляет опции команды `sync` для переименования объектов обычных форм. -8. `tool1CD` - заменяет использование штатных механизмов 1С на приложение `tool1CD` при выгрузке -9. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники -10. `edtExport` - добавляет возможность выгрузки в формате EDT. Для работы плагина необходимо установить EDT. - -Все установленные плагины расположены по пути `%USERPROFILE%\AppData\Local\gitsync\plugins` для Windows или `$HOME/.local/share` для Linux. В этом же каталоге находится файл `plugins.json`, который хранит информацию об активных и неактивных плагинах. В случае каких-либо ошибок, связанных с работой плагинов, можно удалить этот каталог, а затем инициализировать и активировать нужные плагины заново. - - -## Использование библиотеки `gitsync` - -> Раздел документации в разработке - - - - -## Доработка и разработка плагинов - -* [Как создать свой плагин](./create-new-plugin.md) -* Доработка предустановленных плагинов производится в отдельном репозитории [gitsync-plugins](https://github.com/khorevaa/gitsync-plugins) - - -## Механизм подписок на события - -> Раздел документации в разработке - -Проект `gitsync` поддерживает ряд подписок на события - - - - - -## Сборка проекта - -Сборка производится в 2-х режимах: - -1. Сборка обычного пакета (без зависимостей) - - `opm build .` - - В этом варианте в сборку не добавляются предустановленные пакеты. Их надо будет устанавливать отдельно. - -2. Сборка пакета с зависимостями - - `opm build -mf ./build_packagedef .` - - В сборку будут добавлены пакеты из репозиториев: - - * `opm` - из ветки develop - * `gitsync-pre-plugins` - из ветки develop - - -## Доработка - -Доработка проводится по git-flow. Жду ваших PR. - - -## Лицензия - -Смотри файл [`LICENSE`](./LICENSE). - +Синхронизация хранилища 1С с репозиторием git +============================================= +[![Last release](https://img.shields.io/github/v/release/oscript-library/gitsync?include_prereleases&label=last%20release&style=badge)](https://github.com/oscript-library/gitsync/releases/latest) +[![GitHub issues](https://img.shields.io/github/issues-raw/oscript-library/gitsync?style=badge)](https://github.com/oscript-library/gitsync/issues) +[![oscript_library](https://img.shields.io/badge/chat-telegram-blue)](https://t.me/oscript_library) + +Оглавление +========== + + + +- [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git) +- [Оглавление](#оглавление) + - [Введение](#введение) + - [Установка](#установка) + - [Через пакетный менеджер opm](#через-пакетный-менеджер-opm) + - [Вручную](#вручную) + - [Требования](#требования) + - [Особенности](#особенности) + - [Отличия от `gitsync` версий 2.x](#отличия-от-gitsync-версий-2x) + - [Описание функциональности](#описание-функциональности) + - [Использование приложения `gitsync`](#использование-приложения-gitsync) + - [Подготовка](#подготовка) + - [Подготовка нового репозитория (локального)](#подготовка-нового-репозитория-локального) + - [Установка соответствия пользователей](#установка-соответствия-пользователей) + - [Установка номера начальной версии хранилища 1С для синхронизации](#установка-номера-начальной-версии-хранилища-1с-для-синхронизации) + - [Синхронизация](#синхронизация) + - [Справка по использованию команды](#справка-по-использованию-команды) + - [Глобальные переменные окружения](#глобальные-переменные-окружения) + - [Переменные окружения команды](#переменные-окружения-команды) + - [Значения по умолчанию](#значения-по-умолчанию) + - [Примеры использования](#примеры-использования) + - [Настройка плагинов синхронизации](#настройка-плагинов-синхронизации) + - [Использование библиотеки `gitsync`](#использование-библиотеки-gitsync) + - [Доработка и разработка плагинов](#доработка-и-разработка-плагинов) + - [Механизм подписок на события](#механизм-подписок-на-события) + - [Сборка проекта](#сборка-проекта) + - [Доработка](#доработка) + - [Лицензия](#лицензия) + + + + +## Введение + +Проект *gitsync* представляет собой: + +1. Библиотеку `gitsync` (`src/core`) - которая реализует основные классы для синхронизации хранилища 1С с git +2. Приложение `gitsync` (`src/cmd`) - консольное приложение на основе библиотеки [`cli`](https://github/khorevaa/cli) + +[Документация и описание публичного API библиотеки](docs/README.md) + + +## Установка + + +### Через пакетный менеджер opm + +1. Установить командой `opm install gitsync` + + +### Вручную +> Запасной споcоб, например, когда на сервере нет доступа к Интернет +1. Скачать файл `gitsync*.ospx` из раздела [releases](https://github.com/oscript-library/gitsync/releases) +2. Установить командой: `opm install -f <ПутьКФайлу>` + + +## Требования + +* утилита `ring` и `` - для работы с 1С старше версии > 8.3.11 + + +## Особенности + + + +### Отличия от `gitsync` версий 2.x + +* Полностью другая строка вызова приложения, а именно используется стандарт POSIX. +* Работа с хранилищем конфигурации реализована через библиотеку [`v8storage`](https://github.com/khorevaa/v8storage) +* Реализована поддержка работы с хранилищем по протоколу `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`. + +Пример файла: + +```ini +Администратор=Пользователь1 +Вася Иванов=Другой Пользователь +``` + +слева указано имя пользователя хранилища 1С +справа - представление имени пользователя репозитория git и его e-mail + +С помощью e-mail выполняется связка пользователя с публичными репозиториями (например, Github или Bitbucket) + + +#### Установка номера начальной версии хранилища 1С для синхронизации + +> Данный шаг можно пропустить, если у Вас уже установлен номер версии в файле `VERSION` + +При выгрузке изменений хранилища 1С в каталог проекта (в рабочий каталог), gitsync ориентируется на номер последней выгруженной версии, указанный в файле `VERSION`. +Номер версии в файле надо указать если Вы не хотите выгружать в git все версии хранилища 1С. + +Файл заполняется в формате `xml`. + +Пример файла, в котором указано, что выгружено 10 версий: + +```xml + +10 +``` + +Файл можно отредактировать вручную или использовать команду `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`** не должна быть задана + + ```sh + cd C:/work_dir/ + gitsync sync C:/Хранилище_1С/ + ``` + Команда выполнит выгрузку версий хранилища 1С из `C:/Хранилище_1С/` в репозиторий git в каталоге `C:/work_dir` + +* Вариант с указанием пользователя хранилища и пароля + + ```sh + gitsync sync --storage-user Admin --storage-pwd Secret C:/Хранилище_1С/ C:/work_dir/ + ``` + Имя пользователя = Admin, пароль = Secret. + +* Использование синонимов (короткая версия предыдущего примера) + + ```sh + 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/ + ``` + +* Указание исполняемого файла нужной версии платформы + + ```sh + 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: + ```sh + 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: + ```cmd + 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`, а так же ряд вложенных команд: + +1. `init` - Инициализация предустановленных плагинов (установка из поставляемого пакета) +1. `list` - Вывод списка плагинов +1. `enable` - Активизация установленных плагинов +1. `disable` - Деактивизация установленных плагинов +1. `install` - Установка новых плагинов +1. `clear` - Удаление установленных плагинов +1. `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` + +Для инициализации предустановленных плагинов необходимо выполнить команду `gitsync plugins init`. Описание используемых плагинами опций см. в справке к команде sync. + +> ВНИМАНИЕ! После обновления gitsync для **обновления** встроенных плагинов необходимо однократно выполнить команду `gitsync plugins init` + +Список предустановленных плагинов: + +1. `increment` - включает режим инкрементальной выгрузки конфигурации в исходники. + Выгружается не вся конфигурация, а только те объекты, версия которых отличается от версии, имеющейся в каталоге. См. [DumpConfigToFiles](https://its.1c.ru/db/v8319doc#bookmark:adm:TI000000493:dumpconfigtofiles), опция update. +2. `sync-remote` - добавляет опции команды `sync` для синхронизации с удаленным репозиторием git (команды `git pull` и `git push`) +3. `limit` - позволяет ограничить количество выгружаемых версий за один запуск, а так же указать минимальную и/или максимальную версию хранилища для выгрузки +4. `check-authors` - блокирует выгрузку версии, если автор версии хранилища отсутствует в файле `AUTHORS` +5. `check-comments` - добавляет опции команды `sync` для проверки наличия комментария у версии хранилища, а также для проверки заполнения комментария +6. `smart-tags` - устанавливает тег равный версии конфигурации при смене версии конфигурации (не путать с версией хранилища). А также добавляет опции команды `sync` для автоматической установки метки git (команда `git tag`) равной версии хранилища (в формате "v.номер"). +7. `unpackForm` - выполняет распаковку обычных форм на исходники. Добавляет опции команды `sync` для переименования объектов обычных форм. +8. `tool1CD` - заменяет использование штатных механизмов 1С на приложение `tool1CD` при выгрузке +9. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники +10. `edtExport` - добавляет возможность выгрузки в формате EDT. Для работы плагина необходимо установить EDT. + +Все установленные плагины расположены по пути `%USERPROFILE%\AppData\Local\gitsync\plugins` для Windows или `$HOME/.local/share` для Linux. В этом же каталоге находится файл `plugins.json`, который хранит информацию об активных и неактивных плагинах. В случае каких-либо ошибок, связанных с работой плагинов, можно удалить этот каталог, а затем инициализировать и активировать нужные плагины заново. + + +## Использование библиотеки `gitsync` + +> Раздел документации в разработке + + + + +## Доработка и разработка плагинов + +* [Как создать свой плагин](./create-new-plugin.md) +* Доработка предустановленных плагинов производится в отдельном репозитории [gitsync-plugins](https://github.com/khorevaa/gitsync-plugins) + + +## Механизм подписок на события + +> Раздел документации в разработке + +Проект `gitsync` поддерживает ряд подписок на события + + + + + +## Сборка проекта + +Сборка производится в 2-х режимах: + +1. Сборка обычного пакета (без зависимостей) + + `opm build .` + + В этом варианте в сборку не добавляются предустановленные пакеты. Их надо будет устанавливать отдельно. + +2. Сборка пакета с зависимостями + + `opm build -mf ./build_packagedef .` + + В сборку будут добавлены пакеты из репозиториев: + + * `opm` - из ветки develop + * `gitsync-pre-plugins` - из ветки develop + + +## Доработка + +Доработка проводится по git-flow. Жду ваших PR. + + +## Лицензия + +Смотри файл [`LICENSE`](./LICENSE). + From 61c4ce0d92d09dda0cb5187c89bdf7f63fe32def Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 29 Mar 2026 12:00:05 +0300 Subject: [PATCH 3/7] upd version mgmt, upd README --- build_packagedef | 13 ++- packagedef | 11 +- readme.md | 110 +++++++++--------- src/cmd/gitsync.os | 2 +- ...20\266\320\265\320\275\320\270\321\217.os" | 6 - ...21\201\321\202\320\265\320\274\321\213.os" | 2 +- tasks/build.os | 4 +- tasks/get-plugins.os | 2 +- 8 files changed, 84 insertions(+), 66 deletions(-) diff --git a/build_packagedef b/build_packagedef index 788c4a61..c4f43ad7 100644 --- a/build_packagedef +++ b/build_packagedef @@ -11,7 +11,7 @@ КодВозврата = КомандаOpm.Исполнить(); - Если КодВозврата <> 0 Тогда + Если КодВозврата <> 0 Тогда ВызватьИсключение КомандаOpm.ПолучитьВывод(); КонецЕсли; @@ -43,8 +43,17 @@ КонецПроцедуры +ПутьКМодулюПараметрыСистемы = ОбъединитьПути(ТекущийСценарий().Каталог, "src/core", "Модули", "ПараметрыСистемы.os"); + +// специальная заглушка для правильной компиляции packagedef при первых действий при установке пакета +ФайлМодульПараметрыСистемы = Новый Файл(ПутьКМодулюПараметрыСистемы); +Если ФайлМодульПараметрыСистемы.Существует() Тогда + МодульПараметрыСистемы = ЗагрузитьСценарий(ПутьКМодулюПараметрыСистемы); + ВерсияПродукта = МодульПараметрыСистемы.ВерсияПродукта(); +КонецЕсли; + Описание.Имя("gitsync") - .Версия("3.7.1") + .Версия(ВерсияПродукта) .ВерсияСреды("1.9.2") .ВключитьФайл("src") .ВключитьФайл("embedded_plugins") diff --git a/packagedef b/packagedef index 78324c00..f17a8d2f 100644 --- a/packagedef +++ b/packagedef @@ -1,6 +1,15 @@ +ПутьКМодулюПараметрыСистемы = ОбъединитьПути(ТекущийСценарий().Каталог, "src/core", "Модули", "ПараметрыСистемы.os"); + +// специальный фрагмент для правильной компиляции packagedef при первых действиях во время установки пакета +ФайлМодульПараметрыСистемы = Новый Файл(ПутьКМодулюПараметрыСистемы); +Если ФайлМодульПараметрыСистемы.Существует() Тогда + МодульПараметрыСистемы = ЗагрузитьСценарий(ПутьКМодулюПараметрыСистемы); + ВерсияПродукта = МодульПараметрыСистемы.ВерсияПродукта(); +КонецЕсли; + Описание.Имя("gitsync") - .Версия("3.7.1") + .Версия(ВерсияПродукта) .ВерсияСреды("1.9.2") .ЗависитОт("logos", "1.7.1") .ЗависитОт("tempfiles", "1.1.1") diff --git a/readme.md b/readme.md index 2d9df07e..e756af40 100644 --- a/readme.md +++ b/readme.md @@ -1,16 +1,20 @@ -Синхронизация хранилища 1С с репозиторием git + + +# Синхронизация хранилища 1С с репозиторием git + ============================================= [![Last release](https://img.shields.io/github/v/release/oscript-library/gitsync?include_prereleases&label=last%20release&style=badge)](https://github.com/oscript-library/gitsync/releases/latest) [![GitHub issues](https://img.shields.io/github/issues-raw/oscript-library/gitsync?style=badge)](https://github.com/oscript-library/gitsync/issues) [![oscript_library](https://img.shields.io/badge/chat-telegram-blue)](https://t.me/oscript_library) -Оглавление +## Оглавление + ========== - [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git) -- [Оглавление](#оглавление) + - [Оглавление](#оглавление) - [Введение](#введение) - [Установка](#установка) - [Через пакетный менеджер opm](#через-пакетный-менеджер-opm) @@ -60,31 +64,32 @@ ### Вручную + > Запасной споcоб, например, когда на сервере нет доступа к Интернет + 1. Скачать файл `gitsync*.ospx` из раздела [releases](https://github.com/oscript-library/gitsync/releases) 2. Установить командой: `opm install -f <ПутьКФайлу>` ## Требования -* утилита `ring` и `` - для работы с 1С старше версии > 8.3.11 +- утилита `ring` и `` - для работы с 1С старше версии > 8.3.11 ## Особенности - ### Отличия от `gitsync` версий 2.x -* Полностью другая строка вызова приложения, а именно используется стандарт POSIX. -* Работа с хранилищем конфигурации реализована через библиотеку [`v8storage`](https://github.com/khorevaa/v8storage) -* Реализована поддержка работы с хранилищем по протоколу `http` и `tcp` -* Функциональность работы через `tool1CD` - перенесена в предустановленный плагин `tool1CD` -* Вместо двух команд `sync` и `export` оставлена только одна команда `sync`, которая работает как команда `export` в предыдущих версиях, при этом функциональность синхронизации с удаленным репозиторием (команды `git pull` и `git push` ) перенесена в отдельный плагин `sync-remote` -* Прекращена поддержка выгрузки конфигурации в исходники в формате `plain` -* Прекращена поддержка использования файла `renames.txt` и переименования длинных файлов -* Расширен функционал за счет использования механизма подписок на события -* Пока не поддерживается синхронизация с несколькими хранилищами одновременно. (команда `all`) +- Полностью другая строка вызова приложения, а именно используется стандарт POSIX. +- Работа с хранилищем конфигурации реализована через библиотеку [`v8storage`](https://github.com/khorevaa/v8storage) +- Реализована поддержка работы с хранилищем по протоколу `http` и `tcp` +- Функциональность работы через `tool1CD` - перенесена в предустановленный плагин `tool1CD` +- Вместо двух команд `sync` и `export` оставлена только одна команда `sync`, которая работает как команда `export` в предыдущих версиях, при этом функциональность синхронизации с удаленным репозиторием (команды `git pull` и `git push` ) перенесена в отдельный плагин `sync-remote` +- Прекращена поддержка выгрузки конфигурации в исходники в формате `plain` +- Прекращена поддержка использования файла `renames.txt` и переименования длинных файлов +- Расширен функционал за счет использования механизма подписок на события +- Пока не поддерживается синхронизация с несколькими хранилищами одновременно. (команда `all`) ### Описание функциональности @@ -106,7 +111,7 @@ **a. Если у Вас уже есть удаленный репозиторий** (ранее выполнялась синхронизация с сервером git) - используйте команду `clone` -Синтаксис команды: `gitsync clone [ОПЦИИ] PATH URL [WORKDIR]` +Синтаксис команды: `gitsync clone [ОПЦИИ] PATH URL [WORKDIR]` Пример использования: @@ -119,17 +124,17 @@ Больше примеров: `gitsync usage clone` **b. Если у Вас нет удаленного репозитория** - используйте команду `init` - + Синтаксис команды: `gitsync init [ОПЦИИ] PATH [WORKDIR]` Пример использования: -* `gitsync init --storage-user Администратор --storage-pwd Секрет C:/Хранилище_1С/ C:/GIT/src` +- `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` +- `gitsync init --storage-user Администратор --storage-pwd Секрет http:/www.storages.1c.com/repository.1ccr/ИмяХранилища C:/GIT/src` Вариант для подключения к хранилищу по протоколу `http` @@ -196,7 +201,7 @@ #### Справка по использованию команды -``` +```text Команда: sync, s Выполняет синхронизацию хранилища 1С с git-репозиторием @@ -214,6 +219,7 @@ #### Глобальные переменные окружения + | Имя | Описание | | ------------------- | --------------------------------------------------------------------------- | | `GITSYNC_V8VERSION` | маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.) | @@ -244,19 +250,19 @@ #### Примеры использования -* Примитивный вариант +- Примитивный вариант `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`. + Команда выполнит выгрузку версий хранилища расширения 1С из `C:/Хранилище_1С/` для расширения `ИМЯ_Расширения` в репозиторий git в каталоге `C:/GIT/src`. -* Вариант вызова команды в текущем рабочем каталоге +- Вариант вызова команды в текущем рабочем каталоге > переменная окружения **`GITSYNC_WORKDIR`** не должна быть задана @@ -264,16 +270,18 @@ cd C:/work_dir/ gitsync sync C:/Хранилище_1С/ ``` + Команда выполнит выгрузку версий хранилища 1С из `C:/Хранилище_1С/` в репозиторий git в каталоге `C:/work_dir` -* Вариант с указанием пользователя хранилища и пароля +- Вариант с указанием пользователя хранилища и пароля ```sh gitsync sync --storage-user Admin --storage-pwd Secret C:/Хранилище_1С/ C:/work_dir/ ``` + Имя пользователя = Admin, пароль = Secret. - -* Использование синонимов (короткая версия предыдущего примера) + +- Использование синонимов (короткая версия предыдущего примера) ```sh gitsync s -u Admin -p Secret C:/Хранилище_1С/ C:/work_dir/ @@ -282,16 +290,18 @@ # gitsync s -u=Admin -p=Secret C:/Хранилище_1С/ C:/work_dir/ ``` -* Указание исполняемого файла нужной версии платформы +- Указание исполняемого файла нужной версии платформы ```sh 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: + ```sh export GITSYNC_WORKDIR=./work_dir/ export GITSYNC_STORAGE_PATH=./Хранилище_1С/ @@ -305,7 +315,9 @@ export GITSYNC_TEMP=./temp/sync gitsync s ``` + windows: + ```cmd set GITSYNC_WORKDIR=./work_dir/ set GITSYNC_STORAGE_PATH=./Хранилище_1С/ @@ -320,8 +332,8 @@ gitsync s ``` - + #### Настройка плагинов синхронизации > Данный пункт можно пропустить, если Вам не требуется дополнительная функциональность синхронизации @@ -341,11 +353,11 @@ Пример использования: -* `gitsync plugins enable limit` - будет активирован плагин `limit` -* `gitsync plugins enable -a` - будут активированы все предустановленные плагины -* `gitsync plugins enable` - будет выведен список всех установленных плагинов для интерактивного выбора и активации выбранных -* `gitsync plugins list` - будет выведен список всех *активированных* плагинов -* `gitsync plugins list -a` - будет выведен список всех *установленных* плагинов +- `gitsync plugins enable limit` - будет активирован плагин `limit` +- `gitsync plugins enable -a` - будут активированы все предустановленные плагины +- `gitsync plugins enable` - будет выведен список всех установленных плагинов для интерактивного выбора и активации выбранных +- `gitsync plugins list` - будет выведен список всех *активированных* плагинов +- `gitsync plugins list -a` - будет выведен список всех *установленных* плагинов Справка по команде: `gitsync plugins --help` @@ -357,19 +369,13 @@ > ВНИМАНИЕ! После обновления gitsync для **обновления** встроенных плагинов необходимо однократно выполнить команду `gitsync plugins init` -Список предустановленных плагинов: +Соответствие версии gitsync и версии [gitsync-plugins](https://github.com/khorevaa/gitsync-plugins). -1. `increment` - включает режим инкрементальной выгрузки конфигурации в исходники. - Выгружается не вся конфигурация, а только те объекты, версия которых отличается от версии, имеющейся в каталоге. См. [DumpConfigToFiles](https://its.1c.ru/db/v8319doc#bookmark:adm:TI000000493:dumpconfigtofiles), опция update. -2. `sync-remote` - добавляет опции команды `sync` для синхронизации с удаленным репозиторием git (команды `git pull` и `git push`) -3. `limit` - позволяет ограничить количество выгружаемых версий за один запуск, а так же указать минимальную и/или максимальную версию хранилища для выгрузки -4. `check-authors` - блокирует выгрузку версии, если автор версии хранилища отсутствует в файле `AUTHORS` -5. `check-comments` - добавляет опции команды `sync` для проверки наличия комментария у версии хранилища, а также для проверки заполнения комментария -6. `smart-tags` - устанавливает тег равный версии конфигурации при смене версии конфигурации (не путать с версией хранилища). А также добавляет опции команды `sync` для автоматической установки метки git (команда `git tag`) равной версии хранилища (в формате "v.номер"). -7. `unpackForm` - выполняет распаковку обычных форм на исходники. Добавляет опции команды `sync` для переименования объектов обычных форм. -8. `tool1CD` - заменяет использование штатных механизмов 1С на приложение `tool1CD` при выгрузке -9. `disable-support` - снимает конфигурацию с поддержки перед выгрузкой в исходники -10. `edtExport` - добавляет возможность выгрузки в формате EDT. Для работы плагина необходимо установить EDT. +| Версия gitsync | Плагины | +| ---------------- | --------------------------------------------------------------------------------- | +| v3.7.2 (текущая) | [v2.0.3](https://github.com/oscript-library/gitsync-plugins/releases/tag/v.2.0.3) | +| v3.7.1 | [v2.0.1](https://github.com/oscript-library/gitsync-plugins/releases/tag/v.2.0.1) | +| v3.7.0 | [v2.0.0](https://github.com/oscript-library/gitsync-plugins/releases/tag/v.2.0.0) | Все установленные плагины расположены по пути `%USERPROFILE%\AppData\Local\gitsync\plugins` для Windows или `$HOME/.local/share` для Linux. В этом же каталоге находится файл `plugins.json`, который хранит информацию об активных и неактивных плагинах. В случае каких-либо ошибок, связанных с работой плагинов, можно удалить этот каталог, а затем инициализировать и активировать нужные плагины заново. @@ -383,17 +389,16 @@ ## Доработка и разработка плагинов -* [Как создать свой плагин](./create-new-plugin.md) -* Доработка предустановленных плагинов производится в отдельном репозитории [gitsync-plugins](https://github.com/khorevaa/gitsync-plugins) +- [Как создать свой плагин](./create-new-plugin.md) +- Доработка предустановленных плагинов производится в отдельном репозитории [gitsync-plugins](https://github.com/khorevaa/gitsync-plugins) -## Механизм подписок на события +## Механизм подписок на события > Раздел документации в разработке Проект `gitsync` поддерживает ряд подписок на события - @@ -413,8 +418,8 @@ В сборку будут добавлены пакеты из репозиториев: - * `opm` - из ветки develop - * `gitsync-pre-plugins` - из ветки develop + - `opm` - из ветки develop + - `gitsync-pre-plugins` - из ветки develop ## Доработка @@ -425,4 +430,3 @@ ## Лицензия Смотри файл [`LICENSE`](./LICENSE). - diff --git a/src/cmd/gitsync.os b/src/cmd/gitsync.os index 4c78f040..06fcc7ba 100644 --- a/src/cmd/gitsync.os +++ b/src/cmd/gitsync.os @@ -14,7 +14,7 @@ Приложение = Новый КонсольноеПриложение(ПараметрыПриложения.ИмяПриложения(), "Приложение для синхронизации Хранилища 1С с git", ЭтотОбъект); - Приложение.Версия("version", ПараметрыПриложения.Версия()); + Приложение.Версия("version", ПараметрыСистемы.ВерсияПродукта()); Приложение.Опция("v8version", "8.3", "маска версии платформы 1С (8.3, 8.3.5, 8.3.6.2299 и т.п.)") .ВОкружении("GITSYNC_V8VERSION"); Приложение.Опция("v8-path", "", "путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8)") diff --git "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index f3097d4a..2566bef8 100644 --- "a/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/cmd/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -356,10 +356,4 @@ КонецФункции -Функция Версия() Экспорт - - Возврат "3.7.1"; - -КонецФункции - Инициализация(); diff --git "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" index 65772551..e01cd999 100644 --- "a/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" +++ "b/src/core/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\241\320\270\321\201\321\202\320\265\320\274\321\213.os" @@ -38,7 +38,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "3.7.1"; + Возврат "3.7.2"; КонецФункции // ВерсияПродукта() diff --git a/tasks/build.os b/tasks/build.os index f0aa785b..7183d3b9 100644 --- a/tasks/build.os +++ b/tasks/build.os @@ -29,12 +29,14 @@ ПутьКМанифестуСборки = ОбъединитьПути(КаталогПроекта, "build_packagedef"); СобратьПакет(КаталогПроекта, ПутьКМанифестуСборки); - Лог.Информация("Пакет собран в каталог <%1>", КаталогПроекта); КонецПроцедуры КаталогПроекта = ОбъединитьПути(ТекущийСценарий().Каталог, ".."); +КаталогПроектаФайл = Новый Файл(КаталогПроекта); +КаталогПроекта = КаталогПроектаФайл.ПолноеИмя; + Лог = Логирование.ПолучитьЛог("task.install-opm"); ПолезнаяРабота(); diff --git a/tasks/get-plugins.os b/tasks/get-plugins.os index ffd27975..f92ba36c 100644 --- a/tasks/get-plugins.os +++ b/tasks/get-plugins.os @@ -80,7 +80,7 @@ Лог = Логирование.ПолучитьЛог("task.install-opm"); Если АргументыКоманднойСтроки.Количество() = 0 Тогда - УказательКоммита = "master"; + УказательКоммита = "v2.0.3"; Иначе УказательКоммита = АргументыКоманднойСтроки[0]; КонецЕсли; From ad921369cf785343978c02051d90b0c3db877e17 Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 29 Mar 2026 12:53:26 +0300 Subject: [PATCH 4/7] bump warchant/setup-sonar-scanner --- .github/workflows/qa.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 84e04b47..be5903ce 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -91,7 +91,7 @@ jobs: id: extract_version - name: Установка sonar-scanner - uses: warchant/setup-sonar-scanner@v8 + uses: warchant/setup-sonar-scanner@v10 - name: Анализ в SonarQube (branch) if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' From 9f122f713489f9520eb25bca841311138767bdce Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 29 Mar 2026 13:15:02 +0300 Subject: [PATCH 5/7] fix extract_version --- .github/workflows/qa.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index be5903ce..b8c1af94 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -87,7 +87,7 @@ jobs: - name: Извлечение версии пакета shell: bash - run: echo "##[set-output name=version;]`cat packagedef | grep ".Версия(" | sed 's|[^"]*"||' | sed -r 's/".+//'`" + run: echo "##[set-output name=version;]$(grep "Возврат" src/core/Модули/ПараметрыСистемы.os | grep -oP '"\K[^"]+' | head -1)" id: extract_version - name: Установка sonar-scanner From 0cf26162169a7e2e765900aaf6deeec0f26f4c83 Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 29 Mar 2026 15:32:50 +0300 Subject: [PATCH 6/7] fix formatting --- readme.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/readme.md b/readme.md index e756af40..5dabde2e 100644 --- a/readme.md +++ b/readme.md @@ -2,15 +2,12 @@ # Синхронизация хранилища 1С с репозиторием git -============================================= [![Last release](https://img.shields.io/github/v/release/oscript-library/gitsync?include_prereleases&label=last%20release&style=badge)](https://github.com/oscript-library/gitsync/releases/latest) [![GitHub issues](https://img.shields.io/github/issues-raw/oscript-library/gitsync?style=badge)](https://github.com/oscript-library/gitsync/issues) [![oscript_library](https://img.shields.io/badge/chat-telegram-blue)](https://t.me/oscript_library) ## Оглавление -========== - - [Синхронизация хранилища 1С с репозиторием git](#синхронизация-хранилища-1с-с-репозиторием-git) From 039dbe41eb50f943e928cc3bac5a19eac8cb8623 Mon Sep 17 00:00:00 2001 From: Dima Ovcharenko Date: Sun, 29 Mar 2026 21:34:20 +0300 Subject: [PATCH 7/7] rm action-junit-report --- .github/workflows/testing.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 21707fc2..f97f37dd 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -103,13 +103,4 @@ jobs: GITSYNC_V8VERSION: ${{ matrix.v8_version }} with: run: oscript ./tasks/test.os - - - name: Публикация отчета - if: success() || failure() - uses: mikepenz/action-junit-report@v6.0.1 - with: - report_paths: '**/build/reports/*.xml' - fail_on_failure: true - require_passed_tests: true - comment: true - check_name: 'Результаты тестов. ОС: ${{ matrix.os }}. Версия 1С: ${{ matrix.v8_version }}. Версия OneScript: ${{ matrix.oscript_version }}' +