Zum Inhalt springen

Integriertes Git

Ein Restorm-Projekt ist dafür gemacht, in einem Git-Repository zu leben. Die Integration geht über ein einfaches git commit hinaus: Sie versteht das Format und kann einen Konflikt auf Ebene der fachlichen Entitäten lösen, nicht auf Ebene von YAML-Zeilen.

Es gibt nichts zu konfigurieren. Sobald sich die geöffnete .restorm-Datei in einem Git-Repository befindet, aktivieren sich die Git-Oberflächen.

Restorm verwendet Ihr lokales git: weder Zugangsdaten einzugeben noch Token-Verwaltung in der Anwendung. Die Regel ist einfach — wenn git push in Ihrem Terminal funktioniert, funktioniert es auch in Restorm. Git wird mit deaktivierten Eingabeaufforderungen gestartet: Ein Repository, das nach einem Passwort fragen würde, schlägt sofort mit der Meldung von Git fehl, statt die Oberfläche zu blockieren.

Zwei Schaltflächen, Pushen und Pullen, jede mit einem Badge (ein Punkt, nie eine Zahl), wenn es etwas zu senden gibt oder eine neuere Version zum Abrufen vorliegt.

Das Menü Git der Titelleiste bietet dieselben Aktionen, dazu Aktualisieren, Auf Serverversion zurücksetzen und Verlauf.

Die GIT-Zelle der Statusleiste: Aktualisieren, Pushen und Pullen, wobei die beiden letzteren jeweils ein Badge tragen, dann Verlauf. Die Kurzinfo „Auf das Repository pushen“ ist geöffnet.

Der Push-Dialog zeigt eine bereits verfasste Commit-Nachricht, die deterministisch aus dem strukturellen Diff erzeugt wird — ohne Sprachmodell. Eine Zeile pro geänderter Entität (Anfrage, Szenario, Ordner, Variablenordner), nie eine Zeile pro Feld.

  • Ein Sprachselektor für die Nachricht, unabhängig von der Sprache der Oberfläche, mit einem Schalter, um sie zum Standard zu machen.
  • Ein bearbeitbarer Titel, mit einer Zählanzeige bei 72 Zeichen.
  • Ein mehrzeiliger Body.

Das Bestätigen löst nacheinander aus: speichern, git add, Commit, Push.

Restorm speichert zuerst und ruft dann ab und führt zusammen.

Saubere Zusammenführung: Der Baum und die geöffneten Tabs werden an Ort und Stelle aktualisiert.

Konflikt: Eine Auflösungsansicht mit vier Panels öffnet sich.

Die Konfliktauflösungsansicht mit vier Panels: die Konfliktliste links, Ihre Version, die Serverversion — abweichende URLs sind rot umrandet — und das Panel „Aufgelöst“, gefüllt, nachdem Ihre Version übernommen wurde.

PanelInhalt
KonfliktlisteDie im Konflikt stehenden Entitäten
Ihre VersionSchreibgeschützt
Server-VersionSchreibgeschützt
AufgelöstBearbeitbar — das ist, was geschrieben wird

Der entscheidende Punkt: Jedes Panel zeigt die Entität in ihrem tatsächlichen Editor — eine HTTP-Anfrage im HTTP-Editor, ein Szenario im Szenario-Editor. Sie lösen keine <<<<<<<-Marker in YAML auf, Sie vergleichen zwei Anfragen.

Eine Schaltfläche „diese Version verwenden“ pro Seite, und die abweichenden Felder sind rot hervorgehoben — weicht nur ein einzelnes Feld ab, öffnet sich das Panel direkt auf dem betreffenden Tab.

Die API-Dokumentation eines Variablenordners wird automatisch aufgelöst (die neuere Version setzt sich durch).

Abbrechen führt ein git merge --abort aus. Wird die Anwendung mitten in der Auflösung geschlossen, bietet Restorm beim nächsten Start an, die Zusammenführung abzubrechen.

Restorm prüft regelmäßig, ob eine neuere Version existiert — ohne jemals selbstständig zusammenzuführen. Drei Auslöser: eine beobachtete Änderung in .git, das Öffnen einer Datei und ein Timer, dessen Häufigkeit sich in Einstellungen ▸ Git einstellen lässt (Aus, 15 Min., 30 Min., 1 Std., 4 Std., 12 Std., 24 Std.).

Eine Benachrichtigung „Update verfügbar“ bietet dann Pull now an.

Hat sich die Datei seit dem Öffnen auf der Festplatte geändert, wird das Speichern verweigert, und Restorm bittet Sie, Neu laden oder Ihre Version behalten zu wählen.

Zwei Eigenschaften des Formats, beschrieben in Projekte und .restorm-Dateien: eine kanonische Schlüsselreihenfolge und stabil abgeleitete Kennungen.

Die Folge: Öffnen und ohne Änderungen erneut Speichern erzeugt keinerlei Diff, und zwei Personen, die an derselben Stelle dieselbe Anfrage hinzufügen, erzeugen Entitäten, die die Zusammenführung einander zuordnen kann.

Git ▸ Verlauf öffnet eine zweigeteilte Ansicht: die Commit-Liste mit einer Branch-Spur links und die Details rechts. Das Kontextmenü eines Commits erlaubt es, diese Version abzurufen.

Vier Tools, in der Pro-Edition: git_commit_push (Schritt 1 von 2 — liefert ein Review-Token, den Titel, den Body und das Diff pro Entität zurück, ohne etwas zu schreiben), git_confirm_push (Schritt 2 von 2 — wird verweigert, wenn sich das Projekt seit dem Review geändert hat), git_pull und git_resolve_conflicts.

Die Aufteilung in zwei Schritte ist beabsichtigt: Ein Agent kann nicht pushen, ohne dass zuvor ein Diff präsentiert wurde.