Порт 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.
- Эксплуатационная инструкция stage19r1 (русский) — Linux/WSL2, сборки core/test/native, приватные конфиги и секреты, jobs=1/2, license retry, очередь внешних задач, частная tmpfs, диагностика, backup и rollback. Здесь уточнены ограничения текущего snapshot: jobs=2 реально работал, но причина перемежающихся лицензионных отказов не доказана; безопасный старт — явно заданный jobs=1. Проверки на стенде не заменяют приёмку своей установки.
- Установка и настройка: пошаговое руководство для администратора 1С — от пустой машины до запуска по расписанию, с проверками на каждом шаге и таблицей неполадок.
- Запуск в Docker — образ ядра и приватный образ с платформой 1С, пути хоста и контейнера, часовой пояс, общая блокировка хранилища, отдельная отправка в Git.
- Готовый скрипт регулярного запуска — синхронизация, отправка, логи и уборка временных файлов (PowerShell, описан в руководстве).
- Матрица совместимости с upstream — что перенесено, что нет, что не проверено.
- Один репозиторий базы: конфигурация и расширения рядом — раскладка, гарантии и границы.
- Руководство по миграции с gitsync (OneScript).
- API плагинов и его границы.
- Журнал разработки и команды тестов.
| Состояние | |
|---|---|
| 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 и раздел «Что проверено, а что нет» в руководстве по установке.