2011-07-29 2 views
1

J'essaie de faire le valider devrait passer tous les tests pour réussir l'automatisation dans mon projet rails. Le problème est que j'utilise beaucoup git add --patch avant de commettre et je veux que mes tests ne fonctionnent que sur les changements par étapes.Comment faire pour git ne pas tenir compte des changements non validés sur un poste/crochet pré-commit

Solution 1: faire un git stash --keep-index sur la pré-validation ou un git stash simple sur le poteau COMMIT suivi par le crochet (rake tests) et git stash pop. Cela signifie que je vais devoir attendre que cela se termine et pendant qu'il s'exécute, je n'aurai pas accès à mes changements non-planifiés.

Solution 2: Je configure un nouveau référentiel local (le testeur) et configure le hook post-commit du premier repo (le développement) pour l'envoyer au repo du testeur. Le repo testeur devrait avoir un crochet post-réception pour exécuter les tests et m'informer (via email ou whateva) s'il réussit ou non à réparer le commit avant de le pousser.

La deuxième solution semble beaucoup mieux (je suppose), même s'il y aura des différences sur les repos en raison de fichiers ignorés.

Avez-vous une autre solution à proposer?

+0

Problème similaire avec moi. Je préfère Sol. 1 (bien que la vitesse ne le permette pas) mais il y a un problème avec les fichiers non suivis. Si j'ajoute une nouvelle classe et que je l'utilise sans la valider, alors les tests seront exécutés avec elle mais le commit sera un échec. Git supporte stash --include-untracked mais pas à la version 1.7.4.1, que j'ai. – Unapiedra

Répondre

0

J'ai finalement eu recours à Solution 2 qui a ensuite évolué en un mini système de test continu.

1

Jetez un oeil à git-new-workdir (vous pouvez le trouver dans le dépôt git contrib/workdir). Il crée un nouveau répertoire de travail que vous pouvez utiliser pour exécuter les tests.

Questions connexes