Gestapelte PRs werden nur für GitHub.com-Repositorys unterstützt. GitHub
Enterprise Server, GitLab und andere Anbieter verfügen über keine API für gestapelte PRs.
So funktioniert ein Stack
- PRs sind von unten nach oben angeordnet. Der unterste PR hat Ihren Trunk-Branch (z. B.
main) als Ziel; der Basis-Branch jedes weiteren PRs ist der Head-Branch des darunterliegenden PRs. - Da jeder PR mit der darunterliegenden Schicht verglichen wird, zeigt er nur seine eigene Änderung – Änderungen aus darüber- oder darunterliegenden Schichten werden nicht einbezogen.
- Der Stack wird von unten nach oben integriert. Beim Zusammenführen eines PRs im Stack werden auch alle darunterliegenden offenen PRs atomar in einem einzigen Vorgang zusammengeführt. Wenn untere PRs zusammengeführt werden, richtet GitHub die verbleibenden PRs automatisch auf den Trunk-Branch neu aus.
Wann Devin einen Stack erstellt
- Kündigt es den Stack vor dem Erstellen von PRs namentlich an, damit Sie die Reihe in Ihrer Sitzung entstehen sehen können.
- Erstellt es jede PR als normale, fokussierte PR — mit eigener Beschreibung und eigener CI — wobei jede auf den Head-Branch der darunterliegenden PR abzielt.
- Gruppiert es die PRs zu einem Stack auf GitHub, sobald sie erstellt wurden.
Den Stack konsistent halten
- Konfliktauflösung — Wenn in einer Schicht Merge-Konflikte mit dem darunterliegenden Branch entstehen (zum Beispiel nachdem Review-Feedback in einer niedrigeren Schicht übernommen wurde oder sich der Trunk unter dem Stack weiterbewegt), wird Devin automatisch benachrichtigt und löst die Konflikte im Hintergrund. Devin fragt Sie nur, wenn ein Konflikt eine inhaltliche Entscheidung betrifft, die Ihre Eingabe erfordert.
- CI im gesamten Stack — Devin überwacht die CI für jede Schicht und behebt Fehler, sobald sie auftreten. Dabei verfolgt Devin die Bereitschaft der gesamten Reihe, statt einzelne PRs nacheinander zu betreuen.
- Automatisches Retargeting — Wenn die unterste Ebene des Stacks gemergt wird, richtet GitHub die verbleibenden PRs auf den Trunk neu aus. Eine manuelle Rebase-Verwaltung ist nicht erforderlich.
Arbeiten mit Stacks
- Bitten Sie Devin, eine große Änderung in einen Stack aufzuteilen oder die Arbeit als einzelne PR beizubehalten.
- Bitten Sie Devin, Folge-PRs an einen bestehenden Stack anzuhängen.
- Bitten Sie Devin, den Status eines Stacks zu prüfen — Devin zeigt den Status jeder Schicht, CI, Review-Entscheidung und Merge-Fähigkeit an.
- Bitten Sie Devin, den Stack aufzulösen — der Stack wird aufgelöst und seine nicht zusammengeführten PRs werden wieder zu eigenständigen PRs, während ihre Branches unverändert bleiben. Bereits zusammengeführte Schichten bleiben zusammengeführt.
Stacks prüfen und zusammenführen
Einschränkungen
- Nur GitHub.com — Stacks sind auf GitHub Enterprise Server, GitLab, Bitbucket und Azure DevOps nicht verfügbar.
- Stack-Größe — ein Stack enthält zwischen 2 und 100 PRs.
- Zusammenführen — gestapelte PRs können nicht über den regulären Merge-Prozess von GitHub zusammengeführt werden. Stattdessen werden sie über den Stack-Merge zusammengeführt, wobei der ausgewählte PR und alle darunterliegenden offenen PRs gemeinsam übernommen werden.

