2017-08-02 4 views
7

Es gibt einen Fehler in meinem Code, der leicht reproduziert werden kann, da ein Test fehlschlägt.git-bisect aber für N repos

Bisher habe ich in solchen Fällen git-halfect verwendet, aber das ist nur sinnvoll, wenn es nur ein git repo gibt.

In meinem Fall ist es 7.

Gibt es eine Möglichkeit etwas wie git-bisect zu tun, aber für N git Repositories?

aktualisieren

Es gibt einen "Container" Repo diese meist config enthält. Es bezieht sich auf einen bestimmten Kunden.

Dann gibt es ein Repo für die Kernanwendung.

Dann wo sind N Repos für Plugins für diese Kern-Anwendung.

Git Submodule werden in diesem Zusammenhang nicht verwendet.

Update2

Bisher verwende ich nicht das google repo tool. AFAIK kann es auch nicht teilen.

+1

7 Repositories? Irgendein Grund dafür? Haben sie nichts gemeinsam? Kannst du nicht einen 8. machen und alle anderen 7 hineinziehen, indem du die Geschichte kombinierst, und dann könntest du dort halbieren? –

+1

Wie hängen die sieben Repositories zusammen? Sind einige Submodule oder Teilbäume anderer? Sind einige Bibliotheken? Was verhindert, dass Sie das Repository ermitteln, das den Fehler enthält? – Chris

+0

Ich habe die Frage aktualisiert und erklärt, warum es mehrere Git-Repos gibt. – guettli

Antwort

6
  1. Erstens: Finden Sie einen Zustand, als der Test bestanden.

  2. Dann: überprüfen, ob der Test bestanden wird, wenn eine einzige der 7-Repositories Zurücksetzen

Zum Beispiel lassen Sie uns sagen, dass:

  • der Test bestanden, wenn Repositories bei verpflichtet waren:

    A1 A2 A3 A4 A5 A6 A7 
    
  • der Test nicht bestanden, wenn alle Rücksenden ies sind an ihrem neuen HEAD:

    B1 B2 B3 B4 B5 B6 B7 
    

Versuch zu sehen, wenn der Test in den folgenden Konfigurationen passiert:

A1 B2 B3 B4 B5 B6 B7 
B1 A2 B3 B4 B5 B6 B7 
B1 B2 A3 B4 B5 B6 B7 
etc ... 

Wenn Sie einen einzelnen Repo auf diese Weise zu isolieren, zu verwalten: Sie gerade haben um sich zu halbieren.

+0

Wenn Sie nicht auf ein einzelnes Repo reduzieren können, fügen Sie einen Kommentar – LeGEC

+0

Ja, dieser Algorithmus sollte funktionieren. – guettli