Я проверяю свой репозиторий 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 ничего не знают об этой ошибке.Я ожидаю безошибочной проверки хранилища.
Могу ли я что-то исправить, кроме удаления (возможно, оскорбительного) файла?