J'utilise git bisect pour trouver une erreur induisant la validation. Cependant, beaucoup de commits dans la gamme sont définitivement hors de propos (parce qu'ils s'engagent dans la documentation ou dans les tests unitaires). Je voudrais faire git bisect sauter automatiquement les commits qui affectent les fichiers dans certains répertoires. Est-ce possible en quelque sorte?Comment est-ce que je peux réduire une exécution de git bisect en utilisant des chemins de fichier?
Comment est-ce que je peux réduire une exécution de git bisect en utilisant des chemins de fichier?
Répondre
Vous avez plusieurs options:
spécifique Ignorer engage
git bisect
contient des fonctionnalités de commits sauter. Vous pouvez spécifier commits, les balises, les chaînes que vous ne voulez pas tester avecgit bisect skip 0dae5f ff049ab ...
Il suffit de faire cela avant
git bisect run
, et il doit ignorer ce que vous avez spécifié.Spécification des dossiers avec des sources brisées
Vous pouvez également réduire engage
bisect
des tests en spécifiant quels dossiers qu'il doit chercher des problèmes. Cela se fait au début debisect
processus par supllying arguments supplémentaires pourgit bisect start
(citation du manuel standard):git bisect start -- arch/i386 include/asm-i386
Bisect considérera uniquement les validations qui touchent les dossiers spécifiés.
Si vous voulez recueillir automatiquement commits qui touchent certains fichiers ou dossiers, vous pouvez utiliser git log
pour cela. Par exemple, la commande suivante vous donnera commettez des noms qui modifient les fichiers dans certains dossiers:
git log --pretty=format:%H tests/ docs/
Et vous pouvez fournir le résultat à git bisect skip
avec l'utilisation des capacités shell:
git bisect skip `git log --pretty=format:%H tests/ docs/`
- 1. Comment est-ce que je peux normaliser/réduire des chemins ou des URLs en Python indépendamment de l'OS?
- 2. Comment puis-je savoir ce que commit git bisect va essayer ensuite?
- 3. Comment est-ce que je peux traduire des concepts de tronc/branche de Subversion à Git?
- 4. Comment est-ce que je peux réduire le passe-partout dans mes propriétés en utilisant des attributs?
- 5. Comment est-ce que je peux réduire makefile warmplate en faisant des constructions hors-de-source et Java?
- 6. Git chemins non intégrés
- 7. Comment est-ce que je peux sérialiser ce JSON en utilisant des annotations de Jackson?
- 8. Comment est-ce que je peux réduire notre Text-to-Speech de pointe?
- 9. Comment est-ce que je peux réduire le flicker de PageControl dans Delphi?
- 10. Y at-il un contrôle WPF que je peux utiliser pour développer/réduire des panneaux (animés)
- 11. Comment puis-je supprimer un fichier de git à l'aide de filter-branch, ce qui fait que je ne peux pas encore git grep le contenu?
- 12. comment je peux tracer une adresse IP en utilisant delphi
- 13. Comment puis-je réduire le temps de construction en utilisant une construction/parallélisation parallèle des tests?
- 14. Comment puis-je dire à Bison que je m'attends aussi à des conflits réduire-réduire?
- 15. Comment est-ce que je peux instancier une classe en utilisant le raccourci C#?
- 16. Comment est-ce que je peux faire une dispersion se chevauchant en utilisant Boost.MPI?
- 17. Comment est-ce que je peux rendre automatiquement des partiels en utilisant markdown dans Rails 3?
- 18. Est-ce que je peux appliquer une enveloppe de mots à une chaîne en utilisant des expressions régulières?
- 19. Que puis-je faire en utilisant awk que je ne peux pas faire en Perl?
- 20. Importation de Subversion en GIT: problème avec les sous-chemins
- 21. Comment est-ce que je peux patcher des assemblys .NET?
- 22. GIT, GITOSE, SITE WEB - Chemins
- 23. Git conflit de fusion depuis que je supprimé un fichier
- 24. Générer des chemins de fichier temporaires uniques
- 25. comment réduire la taille de l'exe en utilisant py2exe
- 26. Comment créer des chemins variables en utilisant e4X?
- 27. Je ne peux pas renvoyer les modifications à Launchpad en utilisant git-bzr
- 28. Comment est-ce que je peux instancier un élément de commentaire en utilisant lxml?
- 29. comment je peux faire du contenu du fichier en tant que sortie de commande?
- 30. Renommage des chemins de fichier et Doxygen
Je connaissais le premier deux options déjà, mais sauter manuellement les commits était trop de travail (il y en a plusieurs) et je ne sais pas non plus quels dossiers contiennent les sources brisées. La suggestion d'utiliser 'git log' est super! Malheureusement, je suis sur Windows, donc les fonctionnalités de shell fantaisie ne fonctionnera pas pour moi. Cependant, je peux facilement construire une ligne de commande 'git bisect skip' appropriée à la main. Merci! –
@FrerichRaabe: Quoi, ton git n'est pas venu avec une copie de bash? – SamB
hmmm ajouter 2 dossiers à 'git bisect start' ne regarde que les commits qui touchent les deux dossiers. Existe-t-il un moyen de regarder les commits qui touchent un dossier? – EoghanM