2016-07-10 12 views
2

Ich arbeite an Magento (nicht auf magento.stackexchange.com fragen, weil es mehr git ist).Effiziente Weiterleitung von Änderungen des Kernthemas: Git Three Way Merge mit Core Changes?

Manchmal ist es unvermeidlich, Dateien vom Hauptthema zu ändern. (Von zum eigenen Thema natürlich Kopieren)

Es funktioniert (vereinfachter) wie dieses

  1. , dass der Kern-Datei ist: vendor/magento/module-theme/view/frontend/templates/message.phtml
  2. ich kopieren Sie sie in app/design/frontend/My/Theme/default/Magento_Theme/templates/message.phtml
  3. Jetzt mache ich ein Git Commit der Datei "Original aus dem Kern"
  4. Jetzt mache ich meine Änderungen
  5. Beim Upgrade auf eine neue Magento-Version wird wahrscheinlich die vendor/magento/module-theme/view/frontend/templates/message.phtml aktualisiert (über Composer, die Datei ist nicht in meinem Git)
  6. Jetzt suche ich nach einer Möglichkeit, entweder die neuen Änderungen aus dem Kern (aus dem Herstellerordner) in meine benutzerdefinierte Datei zu portieren. Oder um alle meine Änderungen auf eine neue Kopie aus dem Kern erneut anzuwenden.

ich schon ziemlich erfolgreich war ein Patch zwischen meinem „Original aus Kern genommen“ begehen und die aktuelle Version mit der Erstellung der neuen Vorlage vom Kern zu kopieren und den Patch angewendet. Ich habe das alles manuell gemacht und frage mich, ob es einen automatisierten Weg gibt.

+0

* "Manchmal ist es unvermeidlich, Dateien vom Hauptthema zu ändern." * - Können Sie ein Beispiel geben? Ich kann mir nichts vorstellen –

+0

Beim Überschreiben von .phtml-Dateien zum Beispiel - ich spreche über das Kopieren der Dateien zu meinem Thema - nicht direkt im Kern ändern. Aber dann möchte ich noch Updates zum Kern meines Themas portieren. – Alex

+0

Ich sehe - große Frage! –

Antwort

0

Wenn Sie wirklich private Versionen der Upstream-Quelle tragen müssen, tragen Sie sie mit der Upstream-Quelle in einer lokalen Geschichte, die auf der Upstream-Quelle basiert. Wenn Upstream dann mit einer neuen Version auftaucht, kann git die Änderungen automatisch besser zusammenführen als alles andere oder zumindest genauso gut.

+0

Guter Punkt. Leider bin ich mir nicht sicher, wie ich das in einem Magento-Projekt machen soll. Denn das Kopieren von Vorlagendateien auf ein privates Thema ist dort Standard - von verschiedenen Stellen im Dateisystem aus. – Alex

+0

Git verfolgt Dateien nicht separat, es gibt nur den Dag von vollständigen Projekt-Snapshots - aka-commits und Verweise auf aktuell interessante Snapshots im dag. Alle anderen Informationen werden abgeleitet, indem man das effizient untersucht und interessante Teile davon zwischen Repositories verschleckt. – jthill