2008-10-02 6 views
43

Ich versuche herauszufinden, was die "Transplantate" im Git sind.Was sind .git/info/grafts für?

Zum Beispiel in einem der neuesten Kommentare here, nehme Tobu git-filter-branch und .git/info/Transplantate verwenden zwei Repositories zu verbinden.

Aber ich verstehe nicht, warum ich diese Grafts brauche? Es scheint, dass alle ohne die letzten zwei Befehle arbeiten.

+0

Der Link 'hier' verschwunden ist, aber bei http://www.seattlecentral.edu/cgi-bin/cgiwrap/dmartin/moin.cgi kopiert Git –

Antwort

35

Von Git Wiki:

Graft Punkte oder Transplantate ermöglichen zwei sonst verschiedene Linien von Entwicklung miteinander verbunden werden. Es funktioniert, indem Benutzer gefälschte Ahneninformationen für Commits aufzeichnen lassen. Diese Weise, die Sie git vortäuschen können, das Set der Eltern ein Festschreiben hat, ist unterschiedlich von, was notiert wurde, als das Festschreiben erstellt wurde.

Gründe für Transplantate

Grafts Verwendung kann nützlich sein, wenn Entwicklung bewegen git, da sie es erlaubt Sie das Klonen der alten Geschichte aus einem anderen SCM optional importiert zu machen. Dies hält den ersten Klon für Benutzer , der nur die neueste Version nach unten folgen möchte, während Entwickler die vollständige Entwicklungshistorie verfügbar haben können.

Als Linus begann für git mit seinem Kernel-Baum dort Aufrechterhaltung keine Werkzeuge vorhanden waren die alten Kernel Geschichte zu konvertieren. Später, als der alte Kernel-Verlauf in git vom Gateway bkcvs importiert wurde, wurde Grafts erstellt, um es möglich zu machen, die zwei verschiedenen Repositories zusammen zu binden.

8

Wenn mit git-svn Arbeits:

git Transplantate ist sehr nützlich, um einen Git-Baum in eine Subversion-Repository zu importieren.

z. Ich habe ein lokales Git Repository als Start erstellt. Nachdem ich mehrere Tage daran gearbeitet hatte, viele Commits zu erstellen, musste ich es im zentralen Subversion-Repository veröffentlichen und wollte den Verlauf nicht verlieren.

fand ich die folgenden How-to-Artikel: http://eikke.com/importing-a-git-tree-into-a-subversion-repository/