oscript-library / oscript-library/gitsync

Получен ненулевой код возврата 128. Выполнение скрипта остановлено! (08/2021)

Open
#266 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
1C Enterprise
Stars
333
Forks
98
PR merge metrics
No merged PRs in 30d

Description

Описание ошибки

При выполнении команды в формате
gitsync init --storage-user tester --storage-pwd *** tcp://erp***/test*** C:/GIT/test***
получаю следующие сообщения:

ОШИБКА - Получен ненулевой код возврата 128. Выполнение скрипта остановлено!
ИНФОРМАЦИЯ - Инициализация завершена

В результате ожидаемое поведение выполнено (каталог .git создан, файлы AUTHORS и VERSION - тоже) - но смущает лишнее сообщение об ошибке.

Проверил на 3х машинах с разными версиями Oscript и gitsync- результат один. У меня такое ощущение, что в процессе выполнения gitsync init вызывается команда git rev-parse --git-dir, которая просто проверяет, есть ли уже каталог .git, если есть - то git init не вызывается.
И проблема лишь в том, что когда каталог есть - то код возврата 0, а когда нет - то код возврата не 0. И из-за ненулевого кода возврата получаем сообщение об ошибке, хотя по-сути это ожидаемая ошибка, и выводить её не надо.

Ожидаемое поведение если бы ошибки не было

Вывод только сообщения "Инициализация завершена".

Способ воспроизведения

  • Выполнить указанную команду в консоли windows
  • целевой каталог должен или отсутствовать, или быть пуст, т.к. при повторном вызове команды каталог .git уже существует и код возврата = 0.

Окружение:

  • Версия операционной системы: [Windows 10 Корпоративная, Windows Server 2016 Standart]
  • Редакция 1С платформы [8.3.18.1563]
  • Версия Gitsync [3.4.0, 3.3.3]
  • Версия OScript [1.7.0.214, 1.5.0.178]

Дополнительный контекст

Режим защиты от опасных действий отключен (DisableUnsafeActionProtection=.*)
Выдержка из расширенного лога:

ОТЛАДКА - [o.lib.cli_command] - Выполняю полезную работу init
ОТЛАДКА - [oscript.lib.delegate] - Делегат.Исполнить ВыполнитьКоманду
ОТЛАДКА - [oscript.lib.delegate] - Делегат.Исполнить. Имя метода ВыполнитьКоманду, Тип объекта КомандаInit
ОТЛАДКА - [oscript.lib.delegate] - Делегат.Исполнить Кол-во параметров
ОТЛАДКА - [o.lib.cli_command] - Ищю опцию <ib-user> для родителей
ОТЛАДКА - [o.lib.cli_command] -  --> Проверяю родителя <gitsync>
ОТЛАДКА - [o.lib.cli_command] - Ищю опцию <ib-pwd> для родителей
ОТЛАДКА - [o.lib.cli_command] -  --> Проверяю родителя <gitsync>
ОТЛАДКА - [o.lib.cli_command] - Ищю опцию <ib-connection> для родителей
ОТЛАДКА - [o.lib.cli_command] -  --> Проверяю родителя <gitsync>
ОТЛАДКА - [o.lib.gitrunner] - РабочийКаталог: C:\GIT\test*
ОТЛАДКА - [o.lib.gitrunner] - Команда git
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды rev-parse
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды --git-dir
ОТЛАДКА - [o.lib.gitrunner] - Рабочий каталог команды C:\GIT\test*
ОТЛАДКА - [oscript.lib.commands] - РабочийКаталог: C:\GIT\test*
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git rev-parse --git-dir>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git rev-parse --git-dir">
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git rev-parse --git-dir>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git rev-parse --git-dir">
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 69, количество строк 2
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 128
ОШИБКА - [o.lib.gitrunner] - Получен ненулевой код возврата 128. Выполнение скрипта остановлено!
ОТЛАДКА - [o.lib.gitrunner] - РабочийКаталог: C:\GIT\test*
ОТЛАДКА - [o.lib.gitrunner] - Команда git
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды init
ОТЛАДКА - [o.lib.gitrunner] - Рабочий каталог команды C:\GIT\test*
ОТЛАДКА - [oscript.lib.commands] - РабочийКаталог: C:\GIT\test*
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git init>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git init">
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git init>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git init">
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 64, количество строк 2
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 0
ОТЛАДКА - [o.lib.gitrunner] - Код возврата равен 0

P.s. ранее уже был аналогичный issue 181, но на мой взгляд причины ошибки разные.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing gitsync init in an absent or empty Windows directory and compare the git rev-parse --git-dir and git init entries in the extended log. Inspect the o.lib.gitrunner handling of the rev-parse exit code. Done means initialization completes without the code-128 error message and still reports only "Инициализация завершена".

Written by the indexing model from the issue text.

Assessment

Tech stack
git
Domain
cli
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.