2012-12-27 11 views
13

Mit git-subtree erhöht sich die Anzahl der Diffs, die bei der Ausführung einer git subtree split berechnet werden, im Laufe der Zeit und erreicht Werte, die eine Teilung sehr lange dauern können.Zurücksetzen der Diff-Anzahl in der Git-Unterstruktur

Eine Möglichkeit, das zu beheben ist git rm der Pfad, commit es und dann git subtree add es zurück.

Gibt es eine einfachere/sauberere Methode zum Zurücksetzen eines Teilbaums?

+0

ich an dieser Stelle vermuten die richtige Antwort wäre verwendet Submodule die ganze Zeit zu haben. – jthill

+1

Hmmm nein. Ich möchte immer noch Teilbaum verwenden :-) –

Antwort

1

Bei der Aufteilung kann die Option --rejoin verwendet werden, die genau zu existieren scheint, um die Splits wiederzuverwenden, die bereits geschehen sind.

--rejoin ::

Diese Option ist nur gültig für den Split-Befehl.

Nach dem Aufteilen fügen Sie die neu erstellte synthetische Historie zurück in Ihr Hauptprojekt. Auf diese Weise können zukünftige Splits nur den Teil des Verlaufs durchsuchen, der seit dem letzten --rejoin hinzugefügt wurde.

Von https://github.com/apenwarr/git-subtree/blob/master/git-subtree.txt

+0

Das ist interessant. Ich wünschte, dies könnte beim Ziehen/Zusammenführen anstatt beim Teilen gemacht werden, da die Aufteilung für uns eine Leseoperation ist. –

+0

Aber das Zurücksetzen der Zählung macht keinen Sinn für das Ziehen und Zusammenführen, da Sie Inhalte einbringen, anstatt sie von Ihrem eigenen Repository zu trennen. Wenn Sie die Teilbaum-Commits wiederverwenden wollen, die zuvor mit einem Pull/Merge hinzugefügt wurden, geschieht das immer schon: Solange Sie konsistent bleiben oder nicht '--squash' verwenden, werden neue Sub-Tree-Inhalte bereits vorher eingefügt verwendet und automatisch verknüpft. – LopSae

Verwandte Themen