Morgen liebe Leute,
ich hab eine Frage auf die ich aktuell leider keine Lösung finde, daher wollte ich mal fragen, wie ihr das handhabt:
Aktuell versionieren wir mittels SVN sämtliche Shops (zur Nachverfolgung, falls Kunden etwas falsch gemacht haben, zur Entwicklung neuer Features und natürlich für Tests).
Jetzt switchen wir gerade auf eine GIT-lösung (gitlab).
Allerdings fällt es mir schwer, einen Ansatz zu finden, wie man das am sinnvollsten handhabt.
Sollte der gesamte Shop (inkl. Core) versioniert werden? Macht es sinn, den “core” aus einem anderem Repo zu ziehen und nur seinen Theme zu versionieren? Wie geht ihr mit Datenbanken um? Teilweise sind die Einträge in der DB ja essentiell um eine korrekte Darstellung zu gewährleisten (blocks etc…).
Folgendes Szenario:
Kunde A hat einen Shop auf seinem Server. (noch nicht unter Versionskontrolle).
Er möchte nun eine neue Extension haben.
Wir laden also via FTP einmal den gesamten Shop runter, legen ein neues Repo an und versionieren alle Dateien. Änderungen und neue Entwicklungen werden dann lokal entwickelt. Nach fertigstellung wird also commit + push durchgeführt. Damit ist die “neue Version” im Repo.
Nachdem also Tests abgeschlossen sind, soll dieser Stand auf einen Testserver ausgecheckt werden. Es wird also von diesem Repo ein checkout vorgenommen und die Dateien landen auf dem Testsystem (inkl. config-datei etc…) [<-- schonmal suboptimal]. Der Kunde überzeugt sich also jetzt und empfindet es für gut und sagt “jo, bitte live stellen”.
In der Zwischenzeit sind natürlich weitere Bestellungen (oder Übersetzungen) an der Live-Seite vorgenommen wurden. Ergo könnte ein Checkout da nicht stattfinden, ohne “seine” Änderungen zu überschreiben (vorausgesetzt, man versioniert die lang-files nicht). Gleiches gilt für die DB. Wir können keinen dump unserer DB erzeugen und auf den Live-server knallen, da wir seine Änderungen + Daten damit ja vernichten wrüden (Fatal bei Bestellungen…).
Danke für sämtliche Hinweise.
Frage also: Macht es nur sinn, ein Repo für einen Kunden anzulegen und dort die eigenentwicklungen (extensions, template…) zu versionieren?