2010-07-05 3 views

Antwort

27

Sie haben mehrere Möglichkeiten:

  1. Ignorieren spezifische verpflichtet

    git bisect enthält Funktionalität des Überspringens Commits. Sie können angeben, verpflichtet, Tags, reicht man nicht mit

    git bisect skip 0dae5f ff049ab ... 
    

    Tun Sie dies, bevor Sie git bisect run, testen wollen, und es sollte überspringen was Sie angegeben haben.

  2. Angeben von Ordnern mit gebrochenen Quellen

    Sie auch nach unten schneiden verpflichtet bisect Tests durch die Angabe, welche Ordner für Probleme in aussehen soll. Diese zu Beginn des bisect Prozesses durch supllying zusätzliche Argumente zu git bisect start erfolgt (Zitat aus dem Standardhandbuch):

    git bisect start -- arch/i386 include/asm-i386 
    

    Bisect berücksichtigt nur Commits, die die angegebenen Ordner berühren.


Wenn Sie Commits automatisch zu sammeln, die bestimmte Dateien oder Ordner berühren, können Sie git log dafür. Zum Beispiel wird der folgende Befehl geben Sie Namen verpflichten, die Dateien in bestimmten Ordnern ändern:

git log --pretty=format:%H tests/ docs/ 

Und Sie können das Ergebnis git bisect skip mit Verwendung von Shell-Funktionen liefern:

git bisect skip `git log --pretty=format:%H tests/ docs/` 
+0

ich über die erste wusste zwei Optionen bereits, aber das manuelle Überspringen von Commits war zu viel Arbeit (es gibt Hunderte von ihnen) und ich weiß auch nicht, welche Ordner die kaputten Quellen enthält. Der Vorschlag, 'git log' zu verwenden, ist großartig! Leider bin ich auf Windows, so ausgefallene Shell-Funktionen werden für mich nicht funktionieren. Ich kann jedoch leicht eine geeignete "git bisect skip" -Befehlszeile von Hand konstruieren. Vielen Dank! –

+1

@FrelichRaabe: Was, dein git kam nicht mit einer Kopie von bash? – SamB

+3

hmmm das Hinzufügen von 2 Ordnern zu 'git bisect start' sieht nur Commits an, die BEIDE Ordner berühren. Gibt es eine Möglichkeit, Commits zu betrachten, die ENTWEDER Ordner berühren? – EoghanM

Verwandte Themen