2016-05-12 15 views
0

Sagen Sie zum Beispiel, ich laufeGit Rebase Interactive previewer Programm

git rebase -i HEAD~6

dann innerhalb der interaktiven Datei Ich habe

p hash1 comment1 
r hash2 comment2 
f hash3 comment3 
f hash4 comment4 
f hash5 comment5 
p hash6 comment6 

und dann. Git übernimmt dann die Commits und stoppt entweder, wenn es einen Fehler gibt, oder beendet die Rebase erfolgreich.

Was ich möchte, ist wissen, ob es eine Software gibt, die Ihre rebase Spezifikationen Vorschauen, ohne dass Sie die Textdatei verlassen müssen.

Wie auf der Seite oder in einer anderen Shell, Uhren es Ihre temporären Rebasieren Ihrer Arbeit an, Datei und versucht, das Fütterungsmaterial jedes Mal, wenn Sie die Konfiguration/Bestellung von Commits ändern.

Antwort

1

Nein, es gibt kein solches Programm.

Es wäre schwierig, im Allgemeinen zu schreiben: der einzige Weg, Git wissen können, dass Sie die Bearbeitung der Ablaufsteuerung Datei fertig sind, ist für Sie den Editor zu verlassen. Git kann sagen, dass Sie den Editor verlassen haben, weil Git gestartet der Editor, so dass es den Ausgang sieht.

Vorausgesetzt Sie haben eine magische Lösung für dieses Problem bieten, ein solches Programm wäre relativ einfach zu schreiben, wenn Sie genau entscheiden, was es tun soll. Das heißt, wie würde es versuchen, die Rebase, und welchen Zustand sollte es zurücklassen, um Erfolg oder Misserfolg zu markieren? Vermutlich, ob es erfolgreich ist oder fehlschlägt, sollte es das Repository und den Arbeitsbaum unverändert lassen, so dass es immer noch passieren kann, wenn Sie den Editor verlassen und die Rebase "für echt" aufrufen.

Wie auch immer, sollten Sie sich entscheiden, dies zu schreiben, beginnen Sie einfach mit dem vorhandenen rebase -i Skript, das in $(git --exec-path)/git-rebase--interactive ist. Ihre Aufgabe wird sein: Entfernen Sie die Codepfade "setup" und "finish" (weil Sie bereits eingerichtet sind - Sie testen nur und möchten Post-Rebase-Hooks nicht ausführen und auch keine Verzweigungszeiger verschieben); Code hinzufügen, um HEAD auf den Startpunkt zurückzusetzen; Implementieren Sie reword als anstelle von reword (vermutlich möchten Sie nicht, dass Ihr Testskript versucht, zu interagieren - aber beachten Sie, dass ich hier Annahmen treffe); und, ich denke, der schwierigste Teil, finde heraus, wie man über "Erfolg" gegen "Versagen" entscheidet.


Wahrscheinlich ist die magische Lösung nur ein zweites Fenster geöffnet zu haben, in dem Sie Ihren „testen meinen rebase“ Skript ausführen.

für einen Wert von "easy".