Skip to content

About

Выгрузка хранилищ конфигураций и расширений 1С:Предприятие в Git. Python-порт GitSync: параллельный экспорт, Docker, последовательная история коммитов и восстановление после сбоев.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

gitsync-py

Порт oscript-library/gitsync на Python: выгрузка версий хранилища конфигурации 1С:Предприятие в Git с сохранением автора, даты и комментария версии. Отличие от оригинала — параллельная выгрузка версий (каждая версия в изолированной временной базе и рабочем каталоге) при строго последовательных коммитах в порядке номеров версий.

Лицензия — MPL-2.0, как у оригинала (см. LICENSE).

Ставите инструмент на рабочую машину? Начните с пошагового руководства для администратора 1С: установка, настройка хранилищ конфигурации и расширений, пароли, первый запуск, отправка в Git, запуск по расписанию и разбор типичных неполадок. Python знать не нужно.

Актуальная инструкция stage19r1: OPERATIONS_RU.md. Прежнее Docker-руководство — справочный материал, с ограничениями ниже. Результаты и незакрытые ограничения: VERIFIED_STATUS.md. Для Docker используйте описанный там launcher examples/gitsync-run.sh. docker/compose.yaml — прежний образец архитектуры, не готовый штатный native-профиль: read-only root конфликтует с обязательным scratch и инициализацией произвольного UID. Linux native и серверное TCP-хранилище проверены на реальной платформе 8.3.27.2130. Приёмка TCP от 20.09.2026: 17/17 версий, jobs=1/2.

Установка

uv venv .venv
uv pip install --python .venv -e ".[dev]"

CLI после установки: gitsync-py (либо python -m gitsync).

Быстрый старт

# 1. Создать рабочую копию и служебные файлы AUTHORS/VERSION
gitsync-py init --workdir ./repo --storage-path tcp://srv/storage --storage-user Иванов

# 2. Синхронизировать хранилище в Git (4 параллельных экспортёра)
gitsync-py sync --workdir ./repo --storage-path tcp://srv/storage \
    --storage-user Иванов --storage-password-env GITSYNC_STORAGE_PASSWORD \
    --jobs 4 --v8-version 8.3.24

# 3. Принудительно выставить синхронизированную версию
gitsync-py set-version --workdir ./repo --version 120

Пароль хранилища передаётся только через переменную окружения (--storage-password-env) или файл (--storage-password-file). В логах и в сообщениях об ошибках пароль маскируется.

Команды

Команда Назначение
init создать/подготовить рабочую копию Git, сгенерировать AUTHORS и VERSION
clone клонировать Git-репозиторий и выполнить init; для выгрузки версий запустить sync
sync догрузить новые версии хранилища в Git
set-version записать номер синхронизированной версии в VERSION
sync-all пакетная обработка нескольких хранилищ из конфигурационного файла
plugins показать загруженные Python-плагины (plugins --plugin <модуль>)

Несколько хранилищ одной базы (конфигурация и расширения) можно синхронизировать в один репозиторий, по подкаталогу на источник — см. docs/monorepo.md и пример examples/monorepo-base.json:

gitsync-py sync-all --config monorepo-base.json

Подробности и полный список опций: gitsync-py --help, gitsync-py sync --help.

Документация

Что проверено, а что нет

Состояние
Windows + 1С:Предприятие 8.3.27.2130, файловое хранилище, синтетические данные проверено на стенде
Серверное хранилище (tcp://сервер/имя) проверено на настоящем crserver 8.3.27.2130: 17/17 версий конфигурации и двух именованных расширений, jobs=1/2; отчёт
Linux в контейнере: образ ядра, автотесты, сценарии на фикстуре проверено
Linux в контейнере: отправка в Git по ssh (отдельная служба) проверено на одноразовом сервере
Linux в контейнере: работа с настоящим хранилищем 1С проверено на платформе 8.3.27.2130, файловый и TCP-доступ; XML сверены с независимым эталоном; границы приёмки

Для TCP проверены повтор без новых коммитов, неверный пользователь, отсутствующее хранилище и остановленный сервер. Это изолированный стенд с тестовыми данными, не приёмка произвольного production-сервера. -AllExtensions, большие истории и обрыв связи посреди экспорта этой проверкой не покрыты.

Работа с настоящим хранилищем из Linux требует дистрибутива платформы 1С:Предприятие для Linux (несвободного) и решённого вопроса лицензирования — см. docs/docker-guide.md, разделы 10 и 11. Образ с платформой собирается пользователем из своего дистрибутива и не публикуется.

Для герметичных прогонов есть явно помеченный файловый бэкенд (--backend fixture), который читает заранее подготовленный отчёт и каталоги выгрузки. Он не заменяет платформу 1С и не является доказательством работы с хранилищем.

Подробная картина — docs/compatibility-matrix.md и раздел «Что проверено, а что нет» в руководстве по установке.

About

Выгрузка хранилищ конфигураций и расширений 1С:Предприятие в Git. Python-порт GitSync: параллельный экспорт, Docker, последовательная история коммитов и восстановление после сбоев.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages