git pull с git-lfs завершается неудачно с "Числовым результатом вне диапазона" в хуке после слияния - PullRequest
0 голосов
/ 19 июня 2019

Я проверяю свой репозиторий git, настроенный для использования git lfs, с "git pull" и получаю ошибку " Числовой результат вне диапазона " из git / hooks / post-checkout step.

Репозиторий, кажется, завершен после ошибки.Повторный вызов git pull не содержит ошибок. git lfs fetch также завершается без ошибок.

Моя среда:

$ uname -a
Linux ubuntu 4.15.0-51-generic #55-Ubuntu SMP Wed May 15 14:27:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Внутренний сервер:

GitHub Enterprise Server 2.16.10

git-lfs isпоследняя версия:

git-lfs/2.7.2 (GitHub; linux amd64; go 1.12.4; git 08a08ae0)

git:

git version 2.17.1

Крюк после слияния является стандартным и не обрабатывается:

$ /.git/hooks> cat post-merge
#!/bin/sh
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use G
it LFS, remove this hook by deleting .git/hooks/post-merge.\n"; exit 2; }
git lfs post-merge "$@"

Хранилище не особенно велико:только около 2,0 г размера.Самый большой файл размером около 162 МБ:

162094612       ./file

Вывод Git-клона:

(base) $ git clone https://xx/xxx/xxx.git
Cloning into 'xxx'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 454 (delta 2), reused 11 (delta 2), pack-reused 440
Receiving objects: 100% (454/454), 3.69 MiB | 3.09 MiB/s, done.
Resolving deltas: 100% (105/105), done.
Checking out files: 100% (406/406), done.
Filtering content: 100% (79/79), 989.66 MiB | 3.75 MiB/s, done.
fatal: cannot exec '.git/hooks/post-checkout': Numerical result out of range

Конфигурация правильная:

$ git config -l
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
...

Запуск git pull с трассировкой показывает, чтоВозможный нарушитель - libodbcHDB.a, который не особенно велик:

22:44:07.564109 trace git-lfs: filepathfilter: accepting "hdbclient/libodbcHDB.a"
Filtering content: 100% (79/79), 989.66 MiB | 3.88 MiB/s, done.
22:44:41.406236 run-command.c:646       trace: run_command: .git/hooks/post-checkout 0000000000000000000000000000000000000000 da48430be27b4538592bfa6129bc60774e27d1a8 1
fatal: cannot exec '.git/hooks/post-checkout': Numerical result out of range
22:44:41.416862 run-command.c:46        trace: run_command: running exit handler for pid 21945
22:44:41.426946 trace git-lfs: filepathfilter: rewrite ".git" as "**/.git/**"
22:44:41.427090 trace git-lfs: filepathfilter: rewrite "**/.git" as "**/.git"
22:44:41.433243 trace git-lfs: filepathfilter: accepting "tmp"

$ ls -l hdbclient/libodbcHDB.a
-rw-rw-r--. 1 xxx xxx 162094612 Jun 18 22:44 hdbclient/libodbcHDB.a

Нет проблем с https://github.com/git-lfs/git-lfs/issues с этой проблемой.

Повторное выполнение git pull завершается без ошибок:

$ git pull
Already up to date.

Я нашел соответствующие константы в источниках git-lfs в https://github.com/git-lfs/git-lfs/blob/master/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go

{34, "ERANGE", "numerical result out of range"},
    ERANGE          = syscall.Errno(0x22)

Но это не помогает мне понять ошибку.Google и вопросы по git-lfs ничего не знают об этой ошибке.Я ожидаю безошибочной проверки хранилища.

Могу ли я что-то исправить, кроме удаления (возможно, оскорбительного) файла?

...