Open yukon39 opened 3 years ago
@yukon39 а можно подробный лог выполнения?
Конечно:
S:\repo>git commit -m "test"
Start hooks before commit to unpack erf, epf and cfe
ИНФОРМАЦИЯ - precommit1c v2.3.0
ОШИБКА - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
ОШИБКА - {Модуль C:\Program Files\OneScript\lib\gitrunner\src\ГитРепозиторий.os / Ошибка в строке: 868 / '\\server\data\repo'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.}
добавьте в хук перед прекоммитом
set LOGOS_CONFIG=logger.rootLogger=DEBUG
В хук что-то не срабатывает
V:\git\tb_tests>git commit -m"g"
Start hooks before commit to unpack erf, epf and cfe
ОТЛАДКА - [o.lib.gitrunner] - РабочийКаталог: \\FS3-MAIN\data\git\tb_tests
ИНФОРМАЦИЯ - [o.a.~files-extractor] - precommit1c v2.3.0
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-connection-string>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-user>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-pwd>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--v8version>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьПараметрФлаг: ИмяПараметра <--use-designer>
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ПутьВходящихДанных
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ПутьВходящихДанных
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --recursive
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Разбор команды: --git-precommit
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-connection-string
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-user
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-pwd
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --v8version
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --use-designer
ОТЛАДКА - [oscript.lib.cmdline] - Попадаю в РазобратьАргументы
ОТЛАДКА - [oscript.lib.cmdline] - Сбрасываю параметр-флаг: --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Сбрасываю параметр-флаг: --use-designer
ОТЛАДКА - [oscript.lib.cmdline] - Выбран токен: src
ОТЛАДКА - [oscript.lib.cmdline] - Ищу именованный параметр src
ОТЛАДКА - [oscript.lib.cmdline] - Ищу параметр-флаг src
ОТЛАДКА - [oscript.lib.cmdline] - Установлено значение позиционного параметра <ВыходнойКаталог = src>
ОТЛАДКА - [oscript.lib.cmdline] - Выбран токен:
ОТЛАДКА - [oscript.lib.cmdline] - Закончились токены
ОТЛАДКА - [oscript.lib.cmdline] - Трассировка РезультатРазбора:
ОТЛАДКА - [oscript.lib.cmdline] - --remove-orig-bin-files:Нет
ОТЛАДКА - [oscript.lib.cmdline] - --use-designer:Нет
ОТЛАДКА - [oscript.lib.cmdline] - ВыходнойКаталог:src
ОТЛАДКА - [oscript.lib.cmdline] - Трассировка РезультатКоманды.ЗначенияПараметров:
ОТЛАДКА - [oscript.lib.cmdline] - --remove-orig-bin-files:Нет
ОТЛАДКА - [oscript.lib.cmdline] - --use-designer:Нет
ОТЛАДКА - [oscript.lib.cmdline] - ВыходнойКаталог:src
ОТЛАДКА - [o.a.~files-extractor] - ТипЗнч(Аргументы)= Структура
ОТЛАДКА - [o.a.~files-extractor] - Передана команда: --git-precommit
ОТЛАДКА - [o.a.~files-extractor] - --remove-orig-bin-files = Нет
ОТЛАДКА - [o.a.~files-extractor] - --use-designer = Нет
ОТЛАДКА - [o.a.~files-extractor] - ВыходнойКаталог = src
ОТЛАДКА - [o.a.~files-extractor] - Текущий каталог \\FS3-MAIN\data\git\tb_tests
ОТЛАДКА - [o.a.~files-extractor] - Каталог выгрузки src
ОТЛАДКА - [o.a.~files-extractor] - Выполняю проверку настройки core.quotepath
ОТЛАДКА - [o.lib.gitrunner] - Команда git
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды config
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды core.quotepath
ОТЛАДКА - [o.lib.gitrunner] - Рабочий каталог команды \\FS3-MAIN\data\git\tb_tests
ОТЛАДКА - [oscript.lib.commands] - РабочийКаталог: \\FS3-MAIN\data\git\tb_tests
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git config core.quotepath>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git config core.quotepath">
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git config core.quotepath>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git config core.quotepath">
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 174, количество строк 4
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 1
ОШИБКА - [o.lib.gitrunner] - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
ОШИБКА - [o.a.~files-extractor] - {Модуль C:\Program Files\OneScript\lib\gitrunner\src\ГитРепозиторий.os / Ошибка в строке: 868 / "\\FS3-MAIN\data\git\tb_tests"
�������� ���� �� �ᯮ�짮��� �� ����᪥ CMD.EXE � ����⢥ ⥪�饩 �����.
CMD.EXE �� �����ন���� ��� UNC. �� 㬮�砭�� ��࠭� ��⥬��� ����� Windows.}
ОТЛАДКА - [o.a.~files-extractor] - Очищаем временные файлы
@yukon39 попробуйте вручную запустить прекоммит с такой же настройкой лога.
@zeratulayuris В принципе такой же вывод как и выше:
S:\repo>git commit -m "test"
Start hooks before commit to unpack erf, epf and cfe
ОТЛАДКА - [o.lib.gitrunner] - РабочийКаталог: \\server\data\repo
ИНФОРМАЦИЯ - [o.a.~files-extractor] - precommit1c v2.3.0
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-connection-string>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-user>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--ib-pwd>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьИменованныйПараметр: ИмяПараметра <--v8version>
ОТЛАДКА - [oscript.lib.cmdline] - ДобавитьПараметрФлаг: ИмяПараметра <--use-designer>
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ПутьВходящихДанных
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ПутьВходящихДанных
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю позиционный параметр ВыходнойКаталог
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --recursive
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю параметр-флаг --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Разбор команды: --git-precommit
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-connection-string
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-user
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --ib-pwd
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --v8version
ОТЛАДКА - [oscript.lib.cmdline] - Добавляю глобальный параметр: --use-designer
ОТЛАДКА - [oscript.lib.cmdline] - Попадаю в РазобратьАргументы
ОТЛАДКА - [oscript.lib.cmdline] - Сбрасываю параметр-флаг: --remove-orig-bin-files
ОТЛАДКА - [oscript.lib.cmdline] - Сбрасываю параметр-флаг: --use-designer
ОТЛАДКА - [oscript.lib.cmdline] - Выбран токен: src
ОТЛАДКА - [oscript.lib.cmdline] - Ищу именованный параметр src
ОТЛАДКА - [oscript.lib.cmdline] - Ищу параметр-флаг src
ОТЛАДКА - [oscript.lib.cmdline] - Установлено значение позиционного параметра <ВыходнойКаталог = src>
ОТЛАДКА - [oscript.lib.cmdline] - Выбран токен:
ОТЛАДКА - [oscript.lib.cmdline] - Закончились токены
ОТЛАДКА - [oscript.lib.cmdline] - Трассировка РезультатРазбора:
ОТЛАДКА - [oscript.lib.cmdline] - --remove-orig-bin-files:Нет
ОТЛАДКА - [oscript.lib.cmdline] - --use-designer:Нет
ОТЛАДКА - [oscript.lib.cmdline] - ВыходнойКаталог:src
ОТЛАДКА - [oscript.lib.cmdline] - Трассировка РезультатКоманды.ЗначенияПараметров:
ОТЛАДКА - [oscript.lib.cmdline] - --remove-orig-bin-files:Нет
ОТЛАДКА - [oscript.lib.cmdline] - --use-designer:Нет
ОТЛАДКА - [oscript.lib.cmdline] - ВыходнойКаталог:src
ОТЛАДКА - [o.a.~files-extractor] - ТипЗнч(Аргументы)= Структура
ОТЛАДКА - [o.a.~files-extractor] - Передана команда: --git-precommit
ОТЛАДКА - [o.a.~files-extractor] - --remove-orig-bin-files = Нет
ОТЛАДКА - [o.a.~files-extractor] - --use-designer = Нет
ОТЛАДКА - [o.a.~files-extractor] - ВыходнойКаталог = src
ОТЛАДКА - [o.a.~files-extractor] - Текущий каталог \\server\data\repo
ОТЛАДКА - [o.a.~files-extractor] - Каталог выгрузки src
ОТЛАДКА - [o.a.~files-extractor] - Выполняю проверку настройки core.quotepath
ОТЛАДКА - [o.lib.gitrunner] - Команда git
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды config
ОТЛАДКА - [o.lib.gitrunner] - Параметр команды core.quotepath
ОТЛАДКА - [o.lib.gitrunner] - Рабочий каталог команды \\server\data\repo
ОТЛАДКА - [oscript.lib.commands] - РабочийКаталог: \\server\data\repo
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git config core.quotepath>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git config core.quotepath">
ОТЛАДКА - [oscript.lib.commands] - Строка запуска <git config core.quotepath>
ОТЛАДКА - [oscript.lib.commands] - Полная строка запуска <cmd /c "git config core.quotepath">
ОТЛАДКА - [oscript.lib.commands] - Длина вывода 180, количество строк 4
ОТЛАДКА - [oscript.lib.commands] - Код возврата равен 1
ОШИБКА - [o.lib.gitrunner] - Получен ненулевой код возврата 1. Выполнение скрипта остановлено!
ОШИБКА - [o.a.~files-extractor] - {Модуль C:\Program Files\OneScript\lib\gitrunner\src\ГитРепозиторий.os / Ошибка в строке: 868 / '\\server\data\repo'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.}
ОТЛАДКА - [o.a.~files-extractor] - Очищаем временные файлы
Оно же пишет: UNC paths are not supported - и перекидывает в директорию C:Windows. Нельзя установить CWD в сетевую папку. Это всегда так работало на винде
@EvilBeaver Мы работаем из каталога S:\repo
, а не из сетевой папки.
Причем если в файле .git\hooks\pre-commit
указать каталог в явном виде, то все работает:
#!/bin/sh
echo "Start hooks before commit to unpack erf, epf and cfe"
cd S:/repo
oscript -encoding=utf-8 S:/repo/.git/hooks/v8files-extractor.os --git-precommit src
Если в pre-commit исправить код на такой
#!/bin/sh
echo "Start hooks before commit to unpack erf, epf and cfe"
oscript .git/hooks/test.os
#oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src
test.os
Сообщить(ТекущийКаталог());
И если запустить одну и туже команду но с разными версиями гита
V:\TestManagerExt>git version & git commit -m "1"
git version 2.23.0.windows.1
Start hooks before commit to unpack erf, epf and cfe
V:\TestManagerExt
V:\TestManagerExt>git version & git commit -m "1"
git version 2.28.0.windows.1
Start hooks before commit to unpack erf, epf and cfe
\\tsclient\Obrabot\git\TestManagerExt
@Dezmont51 ну мы уже выяснили, что git в новой версии отдаёт пути иначе. Теперь осталось понять, поможет ли установка абсолютных путей. У @yukon39 помогла.
Тоже попали на эту проблему только при использовании GitHub Desktop: при коммите через gui выдается ошибка, при коммите через cmd - все проходит. Причем на другом компе все с точностью наоборот.
Спасибо автору за тему, она навела на мысль проверить git. Выяснилось, что ошибки нет при git 2.23, а при git 2.25 - есть. При этом GitHub Desktop использует собственный git (.\resources\app\git). Т.о. коммит в gui и в cmd - это м.б. разные git! И соответственно один может работать, а другой - нет.
У меня сработало с минимальными изменениями (только добавить "cd s:\repo")
echo "Start hooks before commit to unpack erf, epf and cfe" cd S:/repo oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src
Может реализовать добавление абсолютного пути в хук как доп.опцию? Типа такого:
precommit1c --install --absolute-path
или
precommit1c --install --absolute-path "S:/repo"
Появится требование, что для такого репозитория перемещение или монтирование с другим именем диска будет требовать переустановки прекоммита.
Т.к. проблема актуальна только для сетевых дисков, то такое требование представляется вполне логичным.
Если репозиторий находится на сетевом диске, то при коммите возникает ошибка запуска приложения:
Precommit1c - версия 2.3.0 oscript - 1.4.0 x64 git - 2.28 x64
Дополнительный issue по этой теме - https://github.com/git-for-windows/git/issues/2638
Вкратце - теперь при получении каталога репозитория git разрешает все символические имена, включая алиасы сетевых дисков.