[Pousseur] Erreur sur ecrire

Erreur lors du commit :

git stash -q 2>&1
git pull --rebase 2>&1
Current branch master is up to date.
bash -c ‹ if [[ $(git stash list) ]]; then git stash pop -q 2>&1; fi; ›
git push 2>&1
remote: e[0;33mInfo Update is fast-forwarde[0m
remote: e[0;33mInfo cmd : ./hooks/update.d/updatee[0m
remote: e[0;33mInfo arg1 refs/heads/mastere[0m
remote: e[0;33mInfo marcimat@rezo.nete[0m
remote: e[0;33mInfo arg2 09834f243563b63ec34ee269826e55ecaa04026ae[0m
remote: e[0;33mInfo willmann@netzsachen.dee[0m
remote: e[0;33mInfo arg3 a3044eff5be0da6827d0e0aafcee5119ef32bbace[0m
remote: e[0;33mInfo willmann@netzsachen.dee[0m
remote: e[0;33mInfo mb 09834f243563b63ec34ee269826e55ecaa04026ae[0m
remote: e[0;33mInfo isff e[0m
remote: e[0;33mInfo is same author truee[0m
remote: e[0;32mGrant There are no more rules to check. Grant accesse[0m
remote: error: cannot lock ref ‹ refs/heads/master ›: is at 3f7b244a6de549f3acaa8405ac4d5a1a9c447240 but expected 09834f243563b63ec34ee269826e55ecaa04026a
To spip/spip: Dépôt officiel du core SPIP Les plugins-dist faisant partie de la distribution SPIP sont présents dans https://git.spip.net/spip/[nom du plugin dist] - spip - SPIP on GIT
! [remote rejected] master → master (failed to update ref)
error: failed to push some refs to ‹ spip/spip: Dépôt officiel du core SPIP Les plugins-dist faisant partie de la distribution SPIP sont présents dans https://git.spip.net/spip/[nom du plugin dist] - spip - SPIP on GIT ›

Hello

Là je crois qu’on tombe sur un cas problématique.
Je vois 1 truc qui m’embête :

  • le non alignement des head

Le reste semble bon.
C’est manuel ou script @marcimat ?

Peux tu préciser ?

Sur le dépot en question que salvatore veut pusher, il y a :

git lg -4
* 96448d861 - (HEAD -> master) i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de i18n: [Salvatore] [source:ecrire/lang/ ecrire] Mise a jour du bilan depuis https://trad.spip.net (Torsten Willmann il y a 11 heures)
* 3f7b244a6 - (origin/master, origin/HEAD) docs(changelog): retrait des entrées releasées (Matthieu Marcillaud il y a 3 jours)

On voit bien aussi le 09834f243 dans le reflog d’ailleurs

git reflog -30
96448d861 (HEAD -> master) HEAD@{0}: pull --rebase (finish): returning to refs/heads/master
96448d861 (HEAD -> master) HEAD@{1}: pull --rebase (pick): i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
3f7b244a6 (origin/master, origin/HEAD) HEAD@{2}: pull --rebase (start): checkout 3f7b244a6de549f3acaa8405ac4d5a1a9c447240
a3044eff5 HEAD@{3}: commit: i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
09834f243 HEAD@{4}: reset: moving to HEAD
09834f243 HEAD@{5}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de
98c21050c HEAD@{6}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue ar
3f7b244a6 (origin/master, origin/HEAD) HEAD@{7}: pull --rebase (finish): returning to refs/heads/master
3f7b244a6 (origin/master, origin/HEAD) HEAD@{8}: pull --rebase (start): checkout 3f7b244a6de549f3acaa8405ac4d5a1a9c447240
fa30267e2 HEAD@{9}: commit: i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
8dd62f572 HEAD@{10}: reset: moving to HEAD
8dd62f572 HEAD@{11}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de
21f670875 HEAD@{12}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue ar
3f7b244a6 (origin/master, origin/HEAD) HEAD@{13}: pull --rebase (finish): returning to refs/heads/master
3f7b244a6 (origin/master, origin/HEAD) HEAD@{14}: pull --rebase (start): checkout 3f7b244a6de549f3acaa8405ac4d5a1a9c447240
f6fafb0fc HEAD@{15}: commit: i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
f0d934223 HEAD@{16}: reset: moving to HEAD
f0d934223 HEAD@{17}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de
03f55065a HEAD@{18}: commit: i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue ar
3f7b244a6 (origin/master, origin/HEAD) HEAD@{19}: pull --rebase: Fast-forward
0528ed328 HEAD@{20}: pull --rebase: Fast-forward
fc67b60f5 HEAD@{21}: pull --rebase: Fast-forward
...

Les logs complets de salvatore pour ces 2 commits / push

2024-01-14 01:30:03: Commit de Torsten Willmann <willmann@netzsachen.de> :ecrire/lang/spip_de.php
2024-01-14 01:30:03:    i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de
2024-01-14 01:30:03: > git add 'ecrire/lang/spip_de.php' 2>&1
2024-01-14 01:30:03: > git commit -m 'i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de' --author='Torsten Willmann <willmann@netzsachen.de>' 2>&1
2024-01-14 01:30:03: [master 09834f243] i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de
2024-01-14 01:30:03:  Author: Torsten Willmann <willmann@netzsachen.de>
2024-01-14 01:30:03:  1 file changed, 4 insertions(+), 4 deletions(-)
2024-01-14 01:30:07: > git stash -q 2>&1
2024-01-14 01:30:07: > git pull --rebase 2>&1
2024-01-14 01:30:07: Current branch master is up to date.
2024-01-14 01:30:07: > bash -c 'if [[ $(git stash list) ]]; then git stash pop -q 2>&1; fi;'
2024-01-14 01:30:07: > git push 2>&1
2024-01-14 01:30:07: remote: Info          Update is fast-forward
2024-01-14 01:30:07: remote: Info          cmd : ./hooks/update.d/update
2024-01-14 01:30:07: remote: Info          arg1 refs/heads/master
2024-01-14 01:30:07: remote: Info          marcimat@rezo.net
2024-01-14 01:30:07: remote: Info          arg2 3f7b244a6de549f3acaa8405ac4d5a1a9c447240
2024-01-14 01:30:07: remote: Info          marcimat@rezo.net
2024-01-14 01:30:07: remote: Info          arg3 09834f243563b63ec34ee269826e55ecaa04026a
2024-01-14 01:30:07: remote: Info          willmann@netzsachen.de
2024-01-14 01:30:07: remote: Info          mb 3f7b244a6de549f3acaa8405ac4d5a1a9c447240
2024-01-14 01:30:07: remote: Info          isff 
2024-01-14 01:30:07: remote: Info          is same author false
2024-01-14 01:30:07: remote: Grant         There are no more rules to check.  Grant access
2024-01-14 01:30:07: remote: . Processing 1 references
2024-01-14 01:30:07: remote: Processed 1 references in total
2024-01-14 01:30:07: To https://git.spip.net/spip/spip.git
2024-01-14 01:30:07:    3f7b244a6..09834f243  master -> master
2024-01-14 01:30:07: Module spip OK
2024-01-14 01:30:07:
2024-01-14 01:30:07: 
2024-01-14 01:30:07: --- Module ecrire | ecrire--spip-4b393 | https://git.spip.net/spip/spip.git
2024-01-14 01:30:07: Commit de Torsten Willmann <willmann@netzsachen.de> :ecrire/lang/ecrire_de.php, ecrire/lang/ecrire.xml
2024-01-14 01:30:07:    i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
2024-01-14 01:30:07:    i18n: [Salvatore] [source:ecrire/lang/ ecrire] Mise a jour du bilan depuis https://trad.spip.net
2024-01-14 01:30:07: > git add 'ecrire/lang/ecrire_de.php' 'ecrire/lang/ecrire.xml' 2>&1
2024-01-14 01:30:07: > git commit -m 'i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de
2024-01-14 01:30:07: i18n: [Salvatore] [source:ecrire/lang/ ecrire] Mise a jour du bilan depuis https://trad.spip.net' --author='Torsten Willmann <willmann@netzsachen.de>' 2>&1
2024-01-14 01:30:07: [master a3044eff5] i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de i18n: [Salvatore] [source:ecrire/lang/ ecrire] Mise a jour du bilan depuis https://trad.spip.net
2024-01-14 01:30:07:  Author: Torsten Willmann <willmann@netzsachen.de>
2024-01-14 01:30:07:  2 files changed, 8 insertions(+), 1 deletion(-)
2024-01-14 01:30:09: > git stash -q 2>&1
2024-01-14 01:30:09: > git pull --rebase 2>&1
2024-01-14 01:30:09: Current branch master is up to date.
2024-01-14 01:30:09: > bash -c 'if [[ $(git stash list) ]]; then git stash pop -q 2>&1; fi;'
2024-01-14 01:30:09: > git push 2>&1
2024-01-14 01:30:09: remote: Info          Update is fast-forward
2024-01-14 01:30:09: remote: Info          cmd : ./hooks/update.d/update
2024-01-14 01:30:09: remote: Info          arg1 refs/heads/master
2024-01-14 01:30:09: remote: Info          marcimat@rezo.net
2024-01-14 01:30:09: remote: Info          arg2 09834f243563b63ec34ee269826e55ecaa04026a
2024-01-14 01:30:09: remote: Info          willmann@netzsachen.de
2024-01-14 01:30:09: remote: Info          arg3 a3044eff5be0da6827d0e0aafcee5119ef32bbac
2024-01-14 01:30:09: remote: Info          willmann@netzsachen.de
2024-01-14 01:30:09: remote: Info          mb 09834f243563b63ec34ee269826e55ecaa04026a
2024-01-14 01:30:09: remote: Info          isff 
2024-01-14 01:30:09: remote: Info          is same author true
2024-01-14 01:30:09: remote: Grant         There are no more rules to check.  Grant access
2024-01-14 01:30:09: remote: error: cannot lock ref 'refs/heads/master': is at 3f7b244a6de549f3acaa8405ac4d5a1a9c447240 but expected 09834f243563b63ec34ee269826e55ecaa04026a
2024-01-14 01:30:09: To https://git.spip.net/spip/spip.git
2024-01-14 01:30:09:  ! [remote rejected]     master -> master (failed to update ref)
2024-01-14 01:30:09: error: failed to push some refs to 'https://git.spip.net/spip/spip.git'

Y a quand même un truc louche côté serveur git non ?

Salvatore push le premier commit

  • 2024-01-14 01:30:07: 3f7b244a6..09834f243 master -> master
  • crée un second commit
  • rebase depuis master
  • 2024-01-14 01:30:09: > git pull --rebase 2>&1
  • 2024-01-14 01:30:09: Current branch master is up to date.
  • push… et là PAF…
2024-01-14 01:30:09: remote: error: cannot lock ref 'refs/heads/master': is at 3f7b244a6de549f3acaa8405ac4d5a1a9c447240 but expected 09834f243563b63ec34ee269826e55ecaa04026a

Et en plus on ne voit PAS i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue de · 09834f2435 - spip - SPIP on GIT être arrivé dans master !
Alors que le hook git bloque en disant le contraire là !

Il y a bien un truc qui me semble louche.

Le problème survient après le hook de protection. Le ff a été accepté :

Le commit 09834f243563b63ec34ee269826e55ecaa04026a apparaît 2 commits au dessus de master.
De ce que je vois on a coté serveur (ordre chronologique):
master~1
3f7b244a6de549f3acaa8405ac4d5a1a9c447240 (HEAD → master)
98c21050cf2698c4d982f04bb33c7a702bd82c77
09834f243563b63ec34ee269826e55ecaa04026a

Le reflog local me parait également étrange car 96448d861 pointe sur master et non 09834f243. L’autre truc qui m’étonne c’est le reset présent aussi.

Les commits étant bien présents sur le serveur, je viens de forcer manuellement le refs/head/master pour prendre en compte les 2 commits

Je n’ai pas mis tous les logs, mais avant le commit 0983, salvatore fait le commit

  • [2024-01-14 01:30:03: [master 98c21050c] i18n: [Salvatore] [source:ecrire/lang/ spip] Export depuis https://trad.spip.net de la langue...

mais il ne le pousse pas aussitôt semble t’il. Donc lorsqu’il pousse

  • 2024-01-14 01:30:07: 3f7b244a6..09834f243 master -> master il pousse bien 2 commits

Yop

Ok donc en l’état le push me semble cohérent.
J’essaye de voir coté serveur si je peux extraire un truc plus pertinent, ce qui est pas gagné vu le peu de log à disposition.

Dans le log des 2 commits je vois aussi un truc bizarre , un master pointant sur 3044eff5. Hors je ne le retrouve pas dans l’historique coté serveur. C’est là que ça semble diverger.

Coté script serait il possible :

  • ajouter git fetch --all avant le pull --rebase ?
  • ajouter remote et branch sur le git push : git push origin master ?

Le premier devrait récupérer tout ce qui est distant sans se préoccuper de l’état local. Le second explicite ce qui est fait par défaut vu que l’upstream est déjà déclaré de ce que je vois.

Il n’y a qu’un remote origin sur le git en question.
Le commit est a3044eff5 est bien là i18n: [Salvatore] [source:ecrire/lang/ ecrire] Export depuis https://trad.spip.net de la langue de · a3044eff5b - spip - SPIP on GIT

Je vais voir pour forcer le fetch avant

En effet si en plus je fais des erreurs de copier/coller … Retrouvé :slight_smile: