Commande «spip up» : mauvaise gestion des erreurs git

Hello,

J'ai rencontré des problèmes en utilisant spip-cli pour mettre à jour certaines installations de SPIP. Les fichiers local/remove.txt et local/CACHEDIR.TAG avaient été supprimé. En conséquence de quoi, la mise à jour échoue:

spip dl git -b 3.2 https://git.spip.net/spip/spip.git -d .
Récupération de origin
git pull --rebase
error: Impossible de tirer avec un rebasage : vous avez des modifications non indexées.
error: veuillez les valider ou les remiser.
spip dl git -b spip-3.2 https://git.spip.net/spip/aide.git -d ./plugins-dist/aide
Récupération de origin
git pull --rebase
Déjà à jour.
spip dl git -b spip-3.2 https://git.spip.net/spip/archiviste.git -d ./plugins-dist/archiviste
Récupération de origin
[...]

Il y a ici un double problème:

  • il manque quelque chose (un git checkout ?) pour que le git pull --rebase passe
  • il faudrait que le script s'arrête en cas d'erreur sur l'une des commandes (ça rejoint un peu ce que je disais dans ce ticket : #33 )