GitSync 3.0. Шпаргалка по использованию
Разработка - Групповая разработка (Git, хранилище)
Лирическое вступление
На днях довелось заниматься настройкой синхронизации Хранилища с репозиторием Git на новом проекте. Делал я это не первый раз, наработки кое-какие уже есть, поэтому каких-то больших временных затрат не предполагалось. Всё начиналось стандартно: установка oscript, обновление всех пакетов менеджером opm, инсталляция gitsync. И на этом шаге возник нюанс, имя которому "gitsync 3.0". Как оказалось, уже полгода как он вышел в релиз и заменил собой прежнюю версию 2.4.3.
Обратившись к странице приложения на github, можно узнать, что от прежней версии 2.4.3, наряду с новыми возможностями, версия 3.0 отличается полностью другой строкой вызова приложения, а также переносом некоторых функциональностей в плагины.
Как строится новая строка вызова, удалось понять достаточно быстро. А вот разбирательство с плагинами, которые мне требовалось задействовать, затянулось на несколько часов.
Сначала в ход был пущен всеми любимый метод научного тыка. Пробовал подставлять параметры (те, что раньше применял в 2.4.3) и так и этак, чувствуя себя при этом героем басни "Мартышка и очки". Следующим пошел в ход метод "Если ничто не помогает, попробуй прочитать Инструкцию", но и он не принес желаемых результатов. После этого последовал гуглинг, оказавшийся столь же безрезультатным. Увенчалось всё погружением в исходники.
Как обычно, всё оказалось очень просто. Но... не очевидно. И документация (на текущий момент) не очень помогает. Потому и родилась сия шпаргалка.
Новшества GitSync 3.0
Для начала, буквально парой слов, отмечу чем же примечательна и полезна новая версия (на свой субъективный взгляд).
Одно из важнейших изменений, это то, что в новой версии есть возможность работы с сервером хранилищ Конфигураций по tcp и http за счет подключения к Хранилищам посредством библиотеки v8storage.
Второе - теперь возможно указать информационную базу, используемую в качестве временной, для загрузки Конфигурации из Хранилища и выгрузки в файлы. Ранее для этого каждый раз создавалась временная файловая база. Проблемой это становилось, если на сервере, где происходит работа, нет возможности получить клиентскую лицензию. Например, клиентские лицензии выдает сервер приложений 1С.
Кроме того, теперь можно создавать собственные плагины к GitSync для реализации необходимой функциональности.
Командная строка
Строка запуска приложения прежней версии выглядела следующим образом:
>gitsync export D:\1c\repos\project_rep\ ./sources/config -tempdir D:\tempfiles\ -v8version 8.3.10.2561
Сначала указывалась Команда (в примере - export), далее шли позиционные параметры (в примере - путь к Хранилищу и к репозиторию), затем все опциональные параметры.
В новой версии кроме изменения имени самой команды (export -> sync), меняется и необходимый порядок указания параметров.
Выведем справку по приложению gitsync:
C:\>gitsync --help
Приложение: gitsync
Приложение для синхронизации Хранилища 1С с git
Строка запуска: gitsync [ОПЦИИ] КОМАНДА [аргументы...]
Опции:
--version показать версию и выйти
--v8version маска версии платформы 1С (8.3, 8.3.5, 8.3.6.2299 и т.п.) (env $GITSYNC_V8VERSION) (по умолчанию 8.3)
--v8-path путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) (env
$GITSYNC_V8_PATH)
-v, --verbose вывод отладочной информации в процессе выполнения (env $GITSYNC_VERBOSE)
-U, --ib-usr, --ib-user, --db-user пользователь информационной базы (env $GITSYNC_IB_USR, $GITSYNC_IB_USER, $GITSYNC_DB_USER)
-P, --ib-pwd, --db-pwd пароль пользователя информационной базы (env $GITSYNC_IB_PASSWORD, $GITSYNC_IB_PWD, $GITSYNC_DB_PSW)
-C, --ibconnection, --ib-connection путь подключения к информационной базе (env $GITSYNC_IB_CONNECTION, $GITSYNC_IBCONNECTION)
-t, --tempdir путь к каталогу временных файлов (env $GITSYNC_TEMP, $GITSYNC_TEMPDIR)
--git-path путь к исполняемому файлу git (env $GITSYNC_GIT_PATH, $GIT_PATH)
--domain-email домен почты для пользователей git (env $GITSYNC_EMAIL, $GITSYNC_DOMAIN_EMAIL) (по умолчанию localhost)
Доступные команды:
usage, u Выводит примеры использования
init, i Инициализация структуры нового хранилища git. Подготовка к синхронизации
sync, s Выполняет синхронизацию хранилища 1С с git-репозиторием
clone, c Клонирует существующий репозиторий и создает служебные файлы
all, a Запускает синхронизацию по нескольким репозиториям
set-version, sv Устанавливает необходимую версию в файл VERSION
plugins, p Управление плагинами gitsync
Для вывода справки по доступным командам наберите: gitsync КОМАНДА --help
В выводе мы видим, что для приложения теперь есть общие опции, которые нужно указывать перед командой.
После команды указываются опции, относящиеся непосредственно к этой команде.
Например, для команды sync:
C:\>gitsync sync --help
Команда: 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_STOR
AGE_PWD)
-e, --ext, --extension имя расширения для работы с хранилищем расширения (env $GITSYNC_EXTENSION)
Здесь видим, что опции команды переместились и теперь располагаются перед позиционными параметрами.
Таким образом вызов приложения без функциональностей плагинов, будет выглядеть примерно следующим образом:
>gitsync --tempdir Z:\tempfiles\gitsync --v8version 8.3.14.1630 sync --storage-user gitbot tcp://test_1c_app/uh_main_rep Z:\git_repos\uh_main\config
Плагины
Как уже говорилось, часть привычной функциональности, например ограничение количества или границ выгружаемых версий (ранее определявшиеся опциями -limit, -minversion, -maxversion) вынесено в плагины. В поставку приложения уже включены эти плагины. Отдельно их скачивать и устанавливать не требуется.
- increment - обеспечивает инкрементальную выгрузку конфигурации в исходники
- sync-remote - добавляет функциональность синхронизации с удаленным репозиторием git (команды git pull и git push)
- limit - добавляет возможность ограничения на минимальный, максимальный номер версии хранилища, а так же на лимит на количество выгружаемых версий за один запуск
- check-authors - добавляет функциональность проверки автора версии в хранилище на наличие соответствия в файле AUTHORS
- check-comments - добавляет функциональность проверки на заполненность комментариев в хранилище
- smart-tags - добавляет функциональность автоматической расстановки меток в git (команда git tag) при изменении версии конфигурации
- unpackForm - добавляет функциональность распаковки обычных форм на исходники
- tool1CD - заменяет использование штатных механизмов 1С на приложение tool1CD при синхронизации
- disable-support - снимает конфигурацию с поддержки перед выгрузкой в исходники
После установки gitsync поставляемые плагины содержатся в файле "\embedded_plugins\gitsync-plugins-1.0.5.ospx" в заархивированном виде.
Для того, чтобы ими воспользоваться, первым делом нужно инициализировать предустановленные плагины, выполнив команду:
>gitsync plugins init
При инициализации плагины будут распакованы в каталог данных приложения - %localappdata%\gitsync\plugins
Но этого еще недостаточно.
Если выполнить команду, выводящую список всех установленных плагинов, увидим, что все плагины выключены:
C:\>gitsync plugins list -a
Каталог плагинов: <C:\Users\1c_dev2\AppData\Local\gitsync\plugins>
Список плагинов:
[off] [1.0.5] - increment - Плагин добавляет возможность инкрементальной выгрузки в конфигурации
[off] [1.0.5] - limit - Плагин добавляет возможность ограничения на минимальный, максимальный номер версии хранилища, а
так же на лимит на количество выгружаемых версий за один запуск
[off] [1.0.5] - check-authors - Плагин добавляет функциональность проверки автора версии в хранилище и файла AUTHORS
[off] [1.0.5] - check-comments - Плагин добавляет функциональность проверки комментариев в хранилище
[off] [1.0.5] - smart-tags - Плагин добавляет функциональность автоматической расстановки метов в git
[off] [1.0.5] - tool1CD - Плагин заменяет использование штатных механизмов 1С на tool1CD при синхронизации
[off] [1.0.5] - unpackForm - Плагин добавляет функциональность распаковки обычных форм на исходники
[off] [1.0.5] - disable-support - Плагин снимает конфигурацию с поддержки перед выгрузкой в исходники
[off] [1.0.5] - sync-remote - Плагин добавляет функциональность синхронизации с удаленным репозиторием git
Теперь требуется активировать нужные плагины.
В моем примере, необходимые плагины - limit и check-comments:
C:\>gitsync plugins enable limit Включен плагин: limit C:\>gitsync plugins enable check-comments Включен плагин: check-comments
Теперь команда вывода списка подключенных плагинов покажет что плагины limit и check-comments включены:
C:\>gitsync plugins list
Каталог плагинов: <C:\Users\1c_dev2\AppData\Local\gitsync\plugins>
Список плагинов:
[on] [1.0.5] - limit - Плагин добавляет возможность ограничения на минимальный, максимальный номер версии хранилища, а так же на лимит на количество выгружаемых версий за один запуск
[on] [1.0.5] - check-comments - Плагин добавляет функциональность проверки комментариев в хранилище
Промежуточное "Ура!". Осталось выяснить, каким же образом эти плагины теперь использовать. Какие параметры? В каком месте нужно указывать? Где смотреть справку по ним?
Попытки получить справку по плагину возвращают ошибку:
C:\>gitsync plugins limit --help
КРИТИЧНАЯОШИБКА - Ошибка чтения параметров команды
Команда: plugins, p
Управление плагинами gitsync
Указанная в документации команда с примерами возвращает пустой результат, т.к. на текущий момент не реализована.
>gitsync usage plugins
На самом деле всё оказывается достаточно просто. Но нигде не описано.
Для того, чтобы увидеть ключи параметров плагина, нужно вывести справку о команде.
C:\>gitsync sync --help
Команда: 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, --extension имя расширения для работы с хранилищем расширения (env $GITSYNC_EXTENSION)
-l, --limit [*limit] выгрузить не более <Количества> версий от текущей выгруженной (env $GITSYNC_LIMIT) (по умолчанию 0)
--minversion [*limit] <номер> минимальной версии для выгрузки (по умолчанию 0)
--maxversion [*limit] <номер> максимальной версии для выгрузки (по умолчанию 0)
-C, --error-comment [*check-comments] флаг вызова ошибки при отсутствии текста комментари
Теперь видим, что по сравнению с первоначальным выводом этой команды, в результатах появились строки с указанием ключей плагинов limit и check-comments. И размещать их нужно вместе с опциональными параметрами команды, перед позиционными параметрами.
Таким образом, с учетом необходимых параметров плагинов, строка запуска будет выглядеть примерно так:
>gitsync --tempdir Z:\tempfiles\gitsync --v8version 8.3.14.1630 sync --storage-user gitbot --limit 1 --error-comment tcp://test_1c_app/uh_main_rep Z:\git_repos\uh_main\config
Теперь всё работает так, как и требовалось.
Эпилог
Надеюсь что кому-то моя заметка поможет сэкономить пару часов поисков и разбирательств с новым синтаксисом.
Также, надеюсь что документация к этому замечательному инструменту будет актуализирована и полезность моей шпаргалки сойдет на нет.
Хотелось бы также разобраться с написанием самих плагинов. Сейчас недостающую функциональность приходится добавлять непосредственной правкой кода приложения. Например, при каждой настройке синхронизации, вношу изменения в модуль, с тем, чтобы можно было добавлять в начало каждого комментария git номер версии Хранилища, для возможности быстрого сопоставления.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)
Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.
50000 руб.
10.09.2026 13313 115 0
DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.3 1С 8.5 Бесплатно (free)
В прошлой статье у ERP оставалось 89 отказов загрузки, у ЗУП — 19. Теперь обе конфигурации совпали с эталонами, а собранные файлы прошли круг через платформу. Развертка выделена в открытый репозиторий cf-unwrapper: библиотека на Rust и консольная утилита. Показываю результаты, объясняю границы «100%» и приглашаю к проверкам и развитию проекта.
02.11.2026 241 oyti 1
DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Разработчик 1С:Предприятие 8 Россия Бесплатно (free)
Практическое руководство для команд, которые хотят уйти с хранилища конфигурации на git, не переходя на новую среду разработки. Подойдёт разработчикам и тимлидам, которые настраивают командную разработку на типовых и собственных конфигурациях.
02.11.2026 470 vanya_gonchar 2
Файловый обмен (TXT, XML, DBF), FTP DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Системный администратор Разработчик 1С 8.5 Бесплатно (free)
В прошлой статье я выгрузил Бухгалтерию в XML байт в байт и спросил, на чем проверить дальше. Вы ответили: ERP, старые релизы, зарплата. Прогнал пять конфигураций, от клиента ЭДО до ERP на 120 тысяч файлов. Рассказываю, что сломалось после Бухгалтерии, почему эталону платформы нельзя верить на слово, как выгрузить одну конфигурацию в формат трех версий платформы - и почему cf-конвертер становится отдельным продуктом, Разверткой.
02.11.2026 314 oyti 2
Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Стажер 1С 8.3 Абонемент ($m)
Два разработчика, по десять правок «Нано-УТ 2.0» в git: длинные ветки против слияния после каждой правки, 22 слияния с загрузкой main в чистую базу. ConfigDumpInfo.xml конфликтовал в 11 слияниях из 11, построчное объединение ломало XML и модули. Показываю, что убрать строкой в .gitattributes, что разбирать целыми вставками и как увидеть конфликты до слияния. Прилагаются инструмент с 38 тестами и материалы опыта.
1 стартмани
29.10.2026 341 Ninel_S 3
DevOps и автоматизация разработки Групповая разработка (Git, хранилище) Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С 8.5 Бесплатно (free)
Выгрузка типовой Бухгалтерии в XML через базу занимает больше четырёх минут. Я написал движок, который читает файл конфигурации напрямую и выгружает его за 35 секунд, совпадая с выгрузкой платформы байт в байт во всех 90 385 файлах. Загрузка обратно тоже работает: круг через платформу совпадает полностью. Рассказываю, как ускоряли, как проверяем и что при загрузке XML теряет сама платформа. А в конце спрашиваю, нужно ли это кому-то, кроме меня, и на какой конфигурации проверить следующей.
27.10.2026 893 oyti 20
Рефакторинг и качество кода Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)
Скрипт на Python посчитал метрики 2711 общих модулей УТ 11.5: 26 модулей длиннее 10 000 строк кода. Проверила счёт на синтетических модулях и показала, где рейтинг ошибается: самый длинный модуль оказался в нём ниже девяти коротких. Для разработчиков 1С. В архиве скрипт, тесты и журналы.
1 стартмани
26.10.2026 388 Ninel_S 8
Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)
Общие модули 1С вынесла в подмодуль Git и подключила к двум проектам на выгрузке «Нано-УТ» и платформе 8.3.27. Подмодуль на весь каталог CommonModules загружается; клон без --recursive даёт код 1, а забытый указатель и смена ветки молча дают базу не той версии. Переименованная процедура прошла /CheckModules при 28 вызовах. В архиве скрипты, диагностика подмодулей, тесты и журналы.
1 стартмани
26.10.2026 363 Ninel_S 0
GitSync выгружает файлы посредством Конфигуратора (как если бы Вы выполнили команду Конфигурация->Выгрузить конфигурацию в файлы...), соответственно, формат выгрузки 1С-ный.
Что касается EDT, она по сути, тоже работает через Конфигуратор, запускаемый либо в пакетном режиме (при импорте конфигурации), либо в режиме ssh-сервера. Всё что делает с Конфигурацией EDT, это конвертация из 1C-ных XML в свой формат и обратно.
Вся работа по сборке из исходников CF-файла, обновление БД, по-прежнему выполняется Конфигуратором. Вы можете увидеть его среди процессов в Диспетчере задач или ProcessExplorer-е.
У EDT есть интерфейс командной строки, что позволяет, среди прочего, конвертировать "1С-ную" XML-выгрузку Конфигуратора в формат EDT и обратно.
Таким образом, если Вам требуется выгрузка в формате EDT, то, получив выгрузку Хранилища, можно следующим шагом сконвертировать её в EDT примерно такой командой:
>ring edt workspace import --configuration-files d:/XML-1/ --project D:/project-1 --workspace-location D:/workspace
Подробнее в справке по EDT:
Уточнение. GitSync сразу выполнит коммит полученной XML-выгрузки в репозиторий Git. Полагаю, что для целей конвертации в формат EDT выгрузки из Хранилища, нужно либо немного доработать GitSync, либо сделать к нему соответствующий плагин, либо написать свой скрипт. Возможно, существует готовое решение, но я его не искал.
для работы с Git использование Хранилища не обязательно. По сути, это две разных системы контроля версий. Одна - проприетарная от 1С, другая - от linux-сообщества.
Вместо помещений в Хранилище, Вы можете каждый раз делать выгрузку в XML (инкрементальную, чтобы не выгружать всё) и коммитить в git-репозиторий выполнением команд в консоли, либо каким-либо git-клиентом.
Как раз так и работают в EDT. Там лишь нет шага "выгрузка в файлы", т.к. EDT работает не с "черным ящиком" Конфигурации а с уже выгруженными файлами.
В таком случае Вам не нужен GitSync. Он предназначен для того, чтобы синхронизировать с git-репозиторием "стандартную" разработку, при которой используется Хранилище.
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\gitsync\oscript_modules\v8storage\src\Классы\internal\ripper\Классы\ПарсерОтчетаХранилища.os / Ошибка в строке: 177 / Преобразование к типу 'Число' не поддерживается}ТаблицуВерсий Функция СформироватьТаблицуВерсий(Массив)дело в том, что библиотека v8storage список коммитов получает с помощью отчета по версиям в формате mxl, получаемого запуском Конфигуратора в пакетном режиме с ключом /ConfigurationRepositoryReport.
Далее полученный отчет парсится и вхождение строки "Версия:" является ключевым - после него ожидается номер версии. А у Вас получается, что этот текст стоит в комментарии.
Если для Вас использование именно такой строки в комментариях является критичным, вероятно придется дорабатывать алгоритм парсинга.
А если не критично - заменить на что-нибудь отличающееся, но имеющее тот же смысл, например "Номер версии:"
Для меня это не критично, комментарий я поправил. Просто хотел поделится этой особенностью.
встроенная справка >gitsync --help :
-U, --ib-usr, --ib-user, --db-user пользователь информационной базы (env $GITSYNC_IB_USR, $GITSYNC_IB_USER, $GITSYNC_DB_USER)
-P, --ib-pwd, --db-pwd пароль пользователя информационной базы (env $GITSYNC_IB_PASSWORD, $GITSYNC_IB_PWD, $GITSYNC_DB_PSW)
-C, --ibconnection, --ib-connection путь подключения к информационной базе (env $GITSYNC_IB_CONNECTION, $GITSYNC_IBCONNECTION)
Основная проблема с метками Хранилища - это как их получить. Данная версия GitSync список версий Хранилища получает, сформировав отчет по версиям в mxl-виде. Вернее, это делает библиотека v8storage. Но Платформа не включает в этот отчет метки. Возможно, для прежней версии GitSync можно было бы получить метки непосредственно из файла Хранилища.
В любом случае, это потребует допиливания библиотек под свои нужды.
Могу предложить "полуавтоматический" вариант: список с метками копируется (руками) из таблицы "история хранилища" в какой-нибудь файл, а затем скрипт или обработка его парсит, для каждой версии с меткой находит коммит Git-а и присоединяет ему тег. Чтобы коммиты можно было найти по номеру версии Хранилища, у меня например, к каждому комментарию коммита приписывается номер версии Храна. Правда делал я это для другого - чтобы глазами можно было всегда быстро найти соответствующий коммит.
- очень хотим такое же себе :) Подскажите, как это сделать?
Тут совершенно примитивно:
В файле ".....\OneScript\lib\gitsync\src\core\Классы\МенеджерСинхронизации
Для Каждого Строка Из ТаблицаВерсий Цикл
Строка.Комментарий = Формат(Строка.НомерВерсии, "ЧГ=0") + ". " + Строка.Комментарий;
....
КонецЦикла;
Можно сделать и в другом месте, например перед непосредственным вызовом команды Git.
gitsync-3.0.0.ospxgitsync.exe1. Собираем пакет gitsync-3.0.0.ospx через opm командой
opm build --mf build_packagedef2. Затем через oscript компилируем в exe командой
oscript -make src/cmd/gitsync.os gitsync.exe3. Если ругается на недостающие пакеты, то устанавливаем их командой
opm install имя_пакета_на_который_ругалось1. А Вы используете gitsync3+plugins в Jenkins?
У меня строка запуска, работающая из консоли, выдает ошибку чтения параметров при запуске из jenkins. Если не использовать Опции плагинов (типа "--limit 1" ), то все Работает. Явно jenkins, работающий под Системным пользователем Не видит плагинов , установленных под Локальным пользователем (в его appdata). Как-то можно плагины установить в общую зону видимости, доступную и локальному пользователю и системному jenkins?
2. В качестве наблюдения. Ожидал, что плагин check-authors будет работать подключаться аналогично check-comments (ключ --error-comment). Т.е. для одних проектов можно включать, а для других - нет. Но оказалось, что check-authors ведет себя по простому: ели он enable, то действует и дополнительного ключа в строке запуска не нужно.
У меня работает без Дженкинса на этом проекте.
Как Вы правильно заметили, плагины установлены в локальном каталоге пользователя, отличного от агента Дженкинса. Думаю, самым простым выходом было бы единоразово запустить из Дженкинса скрипт с командой установки и инициализации нужных плагинов. В этом случае они будут установлены и в локальном каталоге, доступном агенту.
Кому интересно, создал bat-ничек и 1дин раз пропустил его на шаге jenkins
rem Инициируем работу с плагинами
rem При инициализации плагины будут распакованы в каталог данных приложения - %localappdata%\gitsync\plugins
rem Если запустить на шаге Jenkins, то плагины помещаются в папку SYSTEM-пользователя
rem C:\Windows\System32\config\systemprofile\AppData\Local
rem C:\Windows\SysWOW64\config\systemprofile\AppData\Local
gitsync plugins init
rem Включаем используемые плагины
gitsync plugins enable limit
gitsync plugins enable unpackForm
gitsync plugins enable check-authors
rem проверяем результат
gitsync plugins list -a ПоказатьЭкспортировать в корень проекта неудобно с учетом наличия CI/CD конфигов, документации и прочего.
Команда: sync, s
Выполняет синхронизацию хранилища 1С с git-репозиторием
Строка запуска: gitsync sync [ОПЦИИ] PATH [WORKDIR]
Аргументы:
PATH Путь к хранилищу конфигурации 1С. (env $GITSYNC_STORAGE_PATH)
WORKDIR Каталог исходников внутри локальной копии git-репозитория. (env $GITSYNC_WORKDIR)
set GITSYNC_WORKDIR=f:\git\luxpoint\src\
...
f:
cd f:\git\luxpoint
git push
Вопрос был больше по плагину, некорректно первоначально поставил.
Использую bat файл для автоматизации выгрузки:
set Log="C:\git\log_gs.txt"
set GITSYNC_WORKDIR=C:/GIT/ut2/
set GITSYNC_STORAGE_PATH=C:/GIT/Storage/UT/
set GITSYNC_STORAGE_USER=User
set GITSYNC_V8_PATH=C:/Program Files/1cv8/8.3.15.1778/bin/1cv8.exe
set GITSYNC_VERBOSE=true
set GITSYNC_TEMP=C:\GIT\Temp\sync
echo +++ Start gitsync %date% %time% >> %Log%
gitsync -v s --limit 1 --increment=disable
ПоказатьВ итоге получаю ошибку:
ОШИБКА - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\gitsync\oscript_modules\v8runner\src\v8r
c:\GIT\--increment=enable
не обнаружено.}
т.е. не получается указать команду с параметром. Как это правильно сделать? пробовал False, тоже не работает.
Исходя из примеров:
gitsync export store -limit 10 -increment -v8version 8.3.10
не указывается булевский параметр, согласно справке:
-increment - Булево, признак использования выгрузки только изменений, действует с платформы 8.3.10
И попутно второй вопрос - а где настраиваются логи работы? Сейчас все запускаю в командной строке и после работы смотрю какие были сообщения. А когда все будет в регламентном задании (шедулере), то как увидеть лог работы?
ИНФОРМАЦИЯ - Номер последней версии в хранилище: 0
Причем не важно к какому хранилищу подключать, пробовал разные.
Если включаю плагин tool1CD все работает.
Хотелось бы типовой запустить.
Если включаю плагин tool1CD все работает.
Хотелось бы типовой запустить
Павел, если это происходит на Платформе 8.3.17, то скорее всего это результат изменения в формате отчета по версиям хранилища. Посмотрите мой комментарий №8 выше, я там описывал каким образом GitSync получает список версий.
Цитата из информации об обновлениях Платформы:
Интервалом дат, за который получается отчет.
Включением или исключением из отчета версий с установленными метками.
Включить вывод в отчет комментарии, начинающиеся с символов комментария (//).
Указывать, для какой версии конфигурации выводить изменения в хранилище.
Управлять форматом отчета по хранилищу.
Для команды пакетного запуска конфигуратора ConfigurationRepositoryReport реализованы параметры DateBegin, DateEnd, DoNotIncludeVersionsWithLabel, IncludeOnlyVersionsWithLabel, IncludeCommentLineWithDoubleSlash, ConfigurationVersion, ReportFormat.
Источник:
Как вариант:
--ibconnection <ПутьКВременнойИБ> --ib-usr <ПользовательИБ> --ib-pwd <ПарольПользователяИБ>
<ПутьКВременнойИБ> может быть серверным, вида /S sever\infobase.
Например, я обновил конфигурацию и при помещении в хранилище указываю в комменте что-то типа #author 1c@1c.ru и gitsync выгружает это изменение уже от имени этого пользователя. Но не могу найти такой плагин (в стандартных его нет).
Кто знает где его найти и как использовать?
Есть issue в гитхабе на этот счет, но, похоже, без развязки:
В принципе, совсем несложно допилить gitsync под себя, чтобы такой функционал был. Не думаю, что это выльется больше, чем в 5 строчек кода (если не пытаться сделать плагин). Но при каждом обновлении, конечно, придется свои доработки возвращать на место.
Для эксперимента создал простое хранилище с одним файлом и тремя коммитами его историю bitbucket отображает корректно
Почему так? Команда sync что-то не так отрабатывает.
Есть конфигурация, подключенная к хранилищу, и расширение, подключенное к другому хранилищу.
как это все выгрузить, используя гитсинк, в один проект для передачи в сонаркуб?
-e ИмяРасширения пробовал, получаю ошибку
соединение расширения конфигурации с хранилищем основной конфигурации невозможно
как корректно указать строку подключения?
У меня работает такая конструкция:
gitsync --tempdir D:\_tmp\gitsync --v8version 8.3.18.1208 sync --storage-user gitbot --ext ИмяРасширения E:/1c_repos/ИмяХранилища/ D:/1git_repos/ИмяРепозитория/src
т.е. в общем случае, у меня будет отдельная строка подключения для каждого расширения?
И еще вопрос - репозиторий гит будет отдельным проектом в сонаркубе, верно я понял?
Да, отдельная строка для хранилища конфигурации, отдельные строки для каждого хранилища расширений. Если в git они все вместе нужны единым проектом, то целевыми каталогами для синхронизации будут подкаталоги проекта.
Если тоже самое делаю через командную строку 1cv8 designer то отлично выгружает все :(
а потом стала выдавать такое и переустановка всего не помогает
C:\Program Files\OneScript\bin>gitsync plugins init
{Модуль C:\Program Files\OneScript\lib\gitsync\src\core\Классы\internal\Классы\
строке: 73 / Внешнее исключение (System.Collections.Generic.KeyNotFoundException): Данный ключ отсутствует в словаре.}
C:\Program Files\OneScript\bin>gitsync sync -u Тест -p test tcp://192.168.180.150/test c:\temp\test\src\cf
ИНФОРМАЦИЯ - Начало выполнение команды <sync>
ИНФОРМАЦИЯ - Начата синхронизация с git
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
ОШИБКА - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\gitsync\oscript_modules\v8runner\src\v8r
ная лицензия!
}
gitsync -v --tempdir C:\Temp\gitsync --v8version 8.3.21.1302 sync -useVendorUnload tcp://192.168.180.150/test c:\temp\test\src\cf
и получаю
Создание информационной базы ("File="C:\Temp\gitsync\dzucoecouqd.tmp\v8r_TempDB";Locale = "ru_RU";") успешно завершено
ОТЛАДКА - [oscript.lib.v8runner] - "C:\Program Files\1Cv8\8.3.21.1302\bin\1cv8.exe" DESIGNER /F"C:\Temp\gitsync\dzucoecouqd.tmp\v8r_TempDB" /Out "C:\Temp\gitsync\dzucoecouqd.tmp\04muvlpt24l.txt" /WA+ /LRU /VLRU
/DisableStartupMessages /DisableStartupDialogs /ConfigurationRepositoryN "seVendorUnload" /ConfigurationRepositoryF "tcp://192.168.180.150/test" /ConfigurationRepositoryReport "C:\Temp\gitsync\bi02jtbw4gb.mxl" -N
Begin 0 -IncludeCommentLinesWithDoubleSlash
Не найдена лицензия. Не обнаружен ключ защиты программы или полученная программная лицензия!
Если попробовать создать файловую локально базу, то да также не найдет лицензию :(
Посмотрите параметр -C, (--ibconnection, --ib-connection) - это как раз база, через которую будет выполняться загрузка из храна и выгрузка в файлы. Можно создать пустую на сервере и указать её параметры (включая пользователя и пароль).
Опции:
--version показать версию и выйти
--v8version маска версии платформы 1С (8.3, 8.3.5, 8.3.6.2299 и т.п.) (env $GITSYNC_V8VERSION) (по умолчанию 8.3)
--v8-path путь к исполняемому файлу платформы 1С (Например, /opt/1C/v8.3/x86_64/1cv8) (env
$GITSYNC_V8_PATH)
-v, --verbose вывод отладочной информации в процессе выполнения (env $GITSYNC_VERBOSE)
-U, --ib-usr, --ib-user, --db-user пользователь информационной базы (env $GITSYNC_IB_USR, $GITSYNC_IB_USER, $GITSYNC_DB_USER)
-P, --ib-pwd, --db-pwd пароль пользователя информационной базы (env $GITSYNC_IB_PASSWORD, $GITSYNC_IB_PWD, $GITSYNC_DB_PSW)
-C, --ibconnection, --ib-connection путь подключения к информационной базе (env $GITSYNC_IB_CONNECTION, $GITSYNC_IBCONNECTION)
-t, --tempdir путь к каталогу временных файлов (env $GITSYNC_TEMP, $GITSYNC_TEMPDIR)
--git-path путь к исполняемому файлу git (env $GITSYNC_GIT_PATH, $GIT_PATH)
--domain-email домен почты для пользователей git (env $GITSYNC_EMAIL, $GITSYNC_DOMAIN_EMAIL) (по умолчанию localhost)
еще пару вопросов помогите плизз, гита нет, нужно просто распаковать и разницу отдать в сонар
постоянно ругается на:
ПРЕДУПРЕЖДЕНИЕ -
Использование синтаксиса лямбда выражений без "->" а так же описания оповещения является устаревшим
и будет удален в последующих версиях, необходимо заменить места использования
это нормально?
и касательно сонара, нужно как то туда отдать автороы с емайлами и комменты
как это работает не можете подсказать плизз?
сейчас ругается
ИНФОРМАЦИЯ - Номер синхронизированной версии: 0
ИНФОРМАЦИЯ - Номер последней версии в хранилище: 5
КРИТИЧНАЯОШИБКА - Нашли версию <1>, а автор <Мастер> не сопоставлен пользователь git.
КРИТИЧНАЯОШИБКА - Нашли версию <2>, а автор <Мастер> не сопоставлен пользователь git.
КРИТИЧНАЯОШИБКА - Нашли версию <3>, а автор <Мастер> не сопоставлен пользователь git.
КРИТИЧНАЯОШИБКА - Нашли версию <4>, а автор <Мастер> не сопоставлен пользователь git.
КРИТИЧНАЯОШИБКА - Нашли версию <5>, а автор <Мастер> не сопоставлен пользователь git.
КРИТИЧНАЯОШИБКА - {Модуль C:\Users\pkirilenko\AppData\Local\gitsync\plugins\gitsync-plugins\src\Классы\checkAuthors.os / Ошибка в строке: 120 / В таблице истории версий найдены авторы (количество 5), которые не
сопоставлены в AUTHORS}
и главное как это подхватить должен сонар не понятно или я не тем путем пошел?
Насчет авторов в Гит - вам нужно в файле AUTHORS (в корне репозитория) сопоставить пользователей Хранилища 1С (всех что есть или тех, чьи коммиты попадают в выгрузку) и их email-ов, с которыми эти пользователи созданы в Гит. Автоматически пользователи в этом файле не сопоставляются. Тут немного нужно руками поработать.
Про "Гита нет" не совсем понятно. Без него у вас репозиторий не создастся даже. Скорее всего речь идет о гит-клиенте, для просмотра? Если так, то можно либо прямо в командной строке с гитом работать. В том числе просматривать созданные коммиты. Или можно взять какой-нибудь портабельный клиент.
C:\Program Files\OneScript\bin>gitsync init --storage-user test --storage-pwd test tcp://192.168.180.150/test c:\temp\test\src\cfe
ОШИБКА - Получен ненулевой код возврата 1. Сообщение: `"git" ?? ????? ???????? ??? ?????
????????, ??????? ?????? ??? ?????? ????.
`
ОШИБКА - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\gitsync\oscript_modules\gitrunner\src\Ги
????????, ??????? ?????? ??? ?????? ????.
}
C:\Windows\system32>gitsync init \\dfs\dfs\ITObmen\Hranilish\Karp "C:\Users\dkusaev\Documents\GitHub\KarpBase"
ОШИБКА - Получен ненулевой код возврата 1. Сообщение: `"git" ?? ????? ???????? ??? ?????
????????, ??????? ?????? ??? ?????? ????.
`
ОШИБКА - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files (x86)\OneScript\lib\gitsync\oscript_modules\gitrunner\src\ГитРепо
????????, ??????? ?????? ??? ?????? ????.
}
Проверьте из командной строки. Например, > where git
Добавил ссылку на папку "git\bin" в переменные системы Path и проблема ушла.
Может кто то по другому реализовывал?
gitsync sync --pull --push
и при gitsync sync даже не показывает эти параметры, только gitsync sync --help только показывает, но толку нет
даже если вместо этих параметров за инитить переменные $GITSYNC_REMOTE_PUSH и $GITSYNC_REMOTE_PULL эффект нулевой
в gitsync -v sync видно что даже не пытается
ОТЛАДКА - [o.l.g.p.increment] - Инкрементальная выгрузка конфигурации - НЕВОЗМОЖНА
ИНФОРМАЦИЯ - Тип выгрузки конфигурации в файлы: ПОЛНАЯ ВЫГРУЗКА
выше в отладке пишет
---- Начало операции с хранилищем конфигурации ----
---- Операция с хранилищем конфигурации завершена ----
Обновление конфигурации из хранилища успешно завершено
а потом делает вызов 1с с ключем -getChanges
DumpInfo.xml"
ОТЛАДКА - [oscript.lib.v8runner] - Получен код возврата 0
ОТЛАДКА - [oscript.lib.v8runner] - Это внешний файл информации: Нет
ОТЛАДКА - [oscript.lib.v8runner] - Очищать файл информации: Да
ОТЛАДКА - [oscript.lib.v8runner] - Удаляю файл информации 1С
ОТЛАДКА - [oscript.lib.v8runner] - файл информации:
Соединение с хранилищем конфигурации не установлено
Потом начинает полную выгрузку -format Hierarchical и снова
ОТЛАДКА - [oscript.lib.v8runner] - Получен код возврата 0
ОТЛАДКА - [oscript.lib.v8runner] - Это внешний файл информации: Нет
ОТЛАДКА - [oscript.lib.v8runner] - Очищать файл информации: Да
ОТЛАДКА - [oscript.lib.v8runner] - Удаляю файл информации 1С
ОТЛАДКА - [oscript.lib.v8runner] - файл информации:
Соединение с хранилищем конфигурации не установлено
Ключи то все в коммандной строке переданы и первый раз соединяется с хранилищем, потом что не так не понятно :(
ОТЛАДКА - [oscript.lib.v8runner] - Очищать файл информации: Да
ОТЛАДКА - [oscript.lib.v8runner] - Удаляю файл информации 1С
ОТЛАДКА - [oscript.lib.v8runner] - файл информации:
Соединение с хранилищем конфигурации не установлено
Потом начинает полную выгрузку -format Hierarchical и снова
ОТЛАДКА - [oscript.lib.v8runner] - Получен код возврата 0
ОТЛАДКА - [oscript.lib.v8runner] - Это внешний файл информации: Нет
ОТЛАДКА - [oscript.lib.v8runner] - Очищать файл информации: Да
ОТЛАДКА - [oscript.lib.v8runner] - Удаляю файл информации 1С
ОТЛАДКА - [oscript.lib.v8runner] - файл информации:
Соединение с хранилищем конфигурации не установлено
Ключи то все в коммандной строке переданы и первый раз соединяется с хранилищем, потом что не так не понятно :(
Добрый день, удалось решить проблему?
устанавливаю
set GITSYNC_PROJECT_NAME=Имя Проекта
set GITSYNC_WORKSPACE_LOCATION=Каталог рабочей области EDT
set GITSYNC_MODULE=в каком виде нужно указать имя установленного модуля edt?
при запуске получил ошибку
AppData\Local\gitsync\plugins\gitsync-plugins\src\Классы\edtExport.os / Ошибка в строке: 148 / Не заполнено имя проекта}
Для проверки в файле edtExport.os
добавил вывод Сообщить(ПараметрыКоманды.Параметр("project-name"));
получил пустую строку.
Спасибо.
Выгружаю из хранилища 1С в GIT через GITSING 3.6.1.
Конфа выгружается в GIT без ошибок, но вот файл Ext\ParentConfigurations.bin почти пустой 1Кб с содержанием {6,0,0,0,1,0}. Хотя выгружаемая конфигурация на поддержке (содержит конфу поставщика).
Пробую через типовую выгрузку конфигурации в файлы - все нормально выгруженный файл ParentConfigurations.bin есть и не пустой. Пробую опять через GITSING другую конфу, тоже на поддержке - и снова файл ParentConfigurations.bin пустой.
Не пойму в чем может быть проблема выгрузки через GITSING из хранилища 1С. Там вроде, то и настроек особо нет по этой теме.
Вот мой скрипт выгрузки:
set GITSYNC_WORKDIR=C:\GIT\DEVCRAFT_NEW\src\config
set GITSYNC_STORAGE_PATH=tcp://srv-1c-app:1542/DEVCRAFT_NEW
set GITSYNC_STORAGE_USER=deploy
set GITSYNC_STORAGE_PASSWORD=12345
set GITSYNC_V8VERSION=8.3.24.1819
set GITSYNC_VERBOSE=true
set GITSYNC_TEMP=C:\GIT\Temp
gitsync s
Пробел в имени - невозможность выгрузить в файлы
Ситуация
1) При создании нового документа была создана Команда.
2) В имени команды допустили ошибку - в конце имени команды забыли убрать пробел.
1С допустил такое имя - с пробелом в конце,
в нашем случае это был вызов печатной формы документа = "ХХХ_Отчет ".
И в Хранилище улетело такое имя.
3) После внесения "имени с пробелом" в конфигурацию - с ней работали и спокойно добавляли новые изменения, в Хранилище накидали много версий, до того как это всё обнаружилось.
В итоге при работе gitsync (под Windows) при выполнении операции:
Конфигуратор.ВыгрузитьКонфигурациюВФайлы(КаталогВыгрузки);
получаем ошибку:
Каталог не обнаружен 'C:\GIT\sync_tmp\qv3c4yf1sgr.tmp\Documents\ДетализацияХХХ\Commands\ХХХ_Отчет \Ext'. 3(0x00000003): Системе не удается найти указанный путь.
Ошибка воспроизводится и при ручной попытке выполнить пункт меню "Выгрузить конфигурацию в файлы.."
Причина проста - Windows не может в обычном режиме создать каталог с пробелом.
Как исправляли
1) В первую очередь убрал пробел и залил в Хранилище имя команды без пробела.
Получилось примерно так:
Версия 6001 - появилось имя с пробелом
Версии 6002..6050 - доработки других объектов
Версия 6051 - исправили имя с пробелом
Далее думали обойти пару версий, чтобы просто пропустить момент заливки плохого имени и двигаться дальше, пытались поменять "1c-source\src\cf\VERSION" счётчик на 1-2 значения, но поняли что каждый раз создаётся CF с плохим именем и так не получится.
2) Выгрузил CF с исправленным именем (без пробела).
3) В Конфигураторе сделал "Сравнить+Объединить"
и снял галки со всех объектов кроме команды "ХХХ_Отчет ".
Готовую настройку объединения сохранил в XML файл настройки "MergeSettings.xml"
4) С целью "убрать пробел из имени" ДО "выгрузки в файлы"
в файле "\src\core\Классы\МенеджерСинхронизации.os"
добавил вызов "ОбъединитьКонфигурациюСФайлом" ПОСЛЕ процедуры "ЗагрузитьВерсиюХранилищаВКонфигурацию"
Код стал такой:
ЗагрузитьВерсиюХранилищаВКонфигурацию(Конфигуратор, КаталогРабочейКопии, ПутьКХранилищу, НомерВерсии);
// patch пробела {
Лог.Отладка("patch пробела!");
Конфигуратор.ОбъединитьКонфигурациюСФайлом( "C:\GIT\SPACE_FIX_1C.cf", "C:\GIT\SPACE_FIX_MergeSettings.xml", , , Истина );
Конфигуратор.ОбновитьКонфигурациюБазыДанных();
// patch пробела }
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
ПоказатьПолучаем результат - из Хранилища создаётся конфигурация, патчится объединением, и только после этого идёт выгрузка в файлы.
В итоге с такой заплаткой удалось обработать версии 6001..6051
После обработки уже вернул стандартный файлик "МенеджерСинхронизации.os"
Кроме этого способа не вижу других вариантов обойти подобную ситуацию, потому что проблема в операции ВыгрузитьКонфигурациюВФайлы = /DumpConfigToFiles.
Разве что в Linux закинуть всё это и обойти запрет создания каталогов с пробелом.
Возможно кто-то попадёт в подобную ситуацию и это ему поможет.
1. Как правильно выгружать доработки? тоесть разработчики поработали, и например ночью по расписанию вызываем конструкцию например : "gitsync sync C:/Хранилище_1С/ C:/GIT/src", потом "git push"....если совсем примитивно, без проверок?
2. Как и сказал раннее есть удаленный репозиторий, как правильно его скопировать и преобразовать в 1С-хранилище на другом ПК....то есть у нас изначально есть две директории 1. 1С хранилище 2. Workdir( где находится .git и файлы преобразованные из 1С хранилища gitsync-ом)....как с клонировать обе директории на другой ПК? или как вообще правильно выгрузить из удаленного репозитория на другой ПК.....думал командой gitsync clone, но так и не понял для чего она нужна, команда gitsync usage clone не работает.
3. При push в удаленный репозиторий встретился файл 100+ мб(.cf), используем git lfs?
Рейтинг: 1063
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1157400
Создание 26.11.19 08:20
Обновление 26.11.19 08:20
Просмотры 36870
Загрузки 0
Рейтинг
137
Комментарии 76
Код открыт Да
Рубрики Групповая разработка (Git, хранилище)
Кому
Системный администратор
,
Разработчик
Тип файла Нет файла
Платформа Не имеет значения
Конфигурация Универсальные
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)