Dans l'un de mes projets, les builds Travis échouent avant qu'un de mes build-system ou code ne puisse être atteint, dès que mon build-script essaie de récupérer toutes les balises Git avec git fetch --tags
:
`` git fetch --tags --verbose
POST git-upload-pack (350 bytes)
POST git-upload-pack (788 bytes)
POST git-upload-pack (797 bytes)
From https://github.com/ELLIOTTCABLE/bs-sedlex
= [up to date] fix-ci -> origin/fix-ci
* [new tag] sedlex-1.99.2 -> sedlex-1.99.2
* [new tag] v1.99.3 -> v1.99.3
...
* [new tag] v20.0.0-pre.2 -> v20.0.0-pre.2
Fetching submodule ppx-sedlex
POST git-upload-pack (122 bytes)
From https://github.com/ELLIOTTCABLE/ppx-sedlex
= [up to date] develop -> origin/develop
= [up to date] master -> origin/master
...
= [up to date] v20.0.0-pre.2 -> v20.0.0-pre.2
POST git-upload-pack (4 bytes)
POST git-upload-pack (69 bytes)
POST git-upload-pack (586 bytes)
fatal: remote error: upload-pack: not our ref 0f509703fcd43ff4324d721a39220153bab49d4a
Cela est particulièrement déroutant, car ni le référentiel principal bs-sedlex
, ni le sous-module git ppx-sedlex
, n'ont de commit commençant comme 0f5097...
; Je n'ai aucune idée d'où vient ce SHA. Cet échec se produit uniquement sur les travailleurs Linux , et je ne peux pas comprendre pourquoi - git fetch --tags
sur ce même dépôt fonctionne sur les travailleurs macOS Travis, sur ma machine macOS et sur une boîte Ubuntu Vagrant, j'ai tourné pour déboguer cela.
Que signifie l'erreur "fatal: erreur distante: upload-pack: not our ref"; et comment puis-je contourner ce problème? Je ne sais même pas par où commencer le débogage de cette erreur, car elle ne se produit que spécifiquement sur les employés de Travis.
(Il est peu probable que cela soit utile, mais voici l' erreur dans le contexte et le référentiel en question .)
Edit 1: Voici quelques résultats intéressants supplémentaires, en ajoutant GIT_TRACE = 2:
Fetching submodule ppx-sedlex
23:55:28.125076 git.c:439 trace: built-in: git fetch --no-prune --no-prune-tags --tags -v --recurse-submodules-default on-demand --submodule-prefix ppx-sedlex/
23:55:28.125914 run-command.c:663 trace: run_command: git-remote-https origin https://github.com/ELLIOTTCABLE/ppx-sedlex.git
23:55:28.429609 run-command.c:663 trace: run_command: git rev-list --objects --stdin --not --all --quiet --alternate-refs
23:55:28.432485 run-command.c:663 trace: run_command: git rev-list --objects --stdin --not --all --quiet --alternate-refs
23:55:28.434082 git.c:439 trace: built-in: git rev-list --objects --stdin --not --all --quiet --alternate-refs
From https://github.com/ELLIOTTCABLE/ppx-sedlex
= [up to date] develop -> origin/develop
= [up to date] master -> origin/master
= [up to date] v1.99.4 -> v1.99.4
= [up to date] v1.99.4-pre.1 -> v1.99.4-pre.1
= [up to date] v1.99.4-pre.3 -> v1.99.4-pre.3
= [up to date] v1.99.4-pre.8 -> v1.99.4-pre.8
= [up to date] v2.0.0 -> v2.0.0
= [up to date] v20.0.0-pre.1 -> v20.0.0-pre.1
= [up to date] v20.0.0-pre.2 -> v20.0.0-pre.2
23:55:28.442482 run-command.c:1616 run_processes_parallel: preparing to run up to 1 tasks
23:55:28.442504 run-command.c:1648 run_processes_parallel: done
23:55:28.442536 run-command.c:663 trace: run_command: git gc --auto
23:55:28.443983 git.c:439 trace: built-in: git gc --auto
23:55:28.444903 run-command.c:663 trace: run_command: cd /home/vagrant/ELLIOTTCABLE/bs-sedlex/.git/modules/ppx-sedlex; unset GIT_PREFIX; GIT_DIR=. git fetch --no-prune --no-prune-tags --tags -v --recurse-submodules-default on-demand --submodule-prefix ppx-sedlex/ origin 0f509703fcd43ff4324d721a39220153bab49d4a
23:55:28.446392 git.c:439 trace: built-in: git fetch --no-prune --no-prune-tags --tags -v --recurse-submodules-default on-demand --submodule-prefix ppx-sedlex/ origin 0f509703fcd43ff4324d721a39220153bab49d4a
23:55:28.447105 run-command.c:663 trace: run_command: git-remote-https origin https://github.com/ELLIOTTCABLE/ppx-sedlex.git
23:55:28.735871 run-command.c:663 trace: run_command: git fetch-pack --stateless-rpc --stdin --lock-pack --thin --no-progress https://github.com/ELLIOTTCABLE/ppx-sedlex.git/
23:55:28.738885 git.c:439 trace: built-in: git fetch-pack --stateless-rpc --stdin --lock-pack --thin --no-progress https://github.com/ELLIOTTCABLE/ppx-sedlex.git/
error: Server does not allow request for unadvertised object 0f509703fcd43ff4324d721a39220153bab49d4a
Je ne peux pas cacher ni expliquer pourquoi Git demande un "objet non annoncé" ici; mais ce n'est clairement pas un problème GitHub, ici - pour une raison quelconque, la commande:
git fetch --no-prune --no-prune-tags --tags -v \
--recurse-submodules-default on-demand \
--submodule-prefix ppx-sedlex/ \
origin 0f509703fcd43ff4324d721a39220153bab49d4a
... est automatiquement invoqué sur le sous-module, lorsque je suis git fetch
dans le référentiel parent. (Encore une fois, ce commit, 0f509703
n'existe dans aucun des repo; encore une fois, le même repo, le même commit exact, et cela ne se produit pas sur macOS - uniquement sur les machines Linux de Travis.)