105 votes

Comment faire un git commit sans erreur ?

J'essaie d'écrire un script de tissu qui fait un git commit Cependant, s'il n'y a rien à commettre, git se termine avec un statut de 1 . Le script de déploiement prend cela comme un échec, et quitte. Je veux détecter réel les échecs à commettre, donc je ne peux pas juste donner au tissu un ignorer général pour les git commit échecs. Comment puis-je permettre que les échecs des empty-commit soient ignorés afin que le déploiement puisse se poursuivre, tout en détectant les erreurs causées par l'échec d'un vrai commit ?

def commit():
    local("git add -p && git commit")

-6voto

devpascoe Points 7

Essayer/attraper bébé !

from fabric.api import local
from fabric.colors import green

def commit(message='updates'):
    try:
        local('git add .')
        local('git commit -m "' + message + '"')
        local('git push')
        print(green('Committed and pushed to git.', bold=False))
    except:
        print(green('Done committing, likely nothing new to commit.', bold=False))

10 votes

Pour expliquer pourquoi vous êtes rétrogradé : Il peut y avoir d'autres erreurs que vous voulez attraper. Vous ne voulez pas simplement supposer qu'en cas d'erreur, il se peut que rien ne doive être commis. -- Aussi, mais ce n'est pas lié : Ne jamais utiliser un générique except: utiliser except Exception à la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X