Wie füge ich meinem Workflow eine Versionskontrolle hinzu?

11

Ich entwickle viele Themen. Ich bekomme eine PSD, codiere das HTML / CSS, schlage den Code in Wordpress und nehme Korrekturen vor, sobald sie eine Qualitätskontrolle erhalten. Einmal live, können Kunden Blog-Beiträge wie gewohnt bearbeiten oder Fotos mit einem benutzerdefinierten Plugin hochladen.

Manchmal muss ich Änderungen am Thema oder am Seiten- / Post-Inhalt vornehmen, was bedeutet, dass ich sie entweder live mache oder die Site in eine vom Client zu genehmigende Entwicklungsumgebung herunterladen und einrichten muss. Ich habe kein Backup, keine Versionskontrolle und mir ist klar, dass sich dies ändern muss.

Git und Mercurial wurden vorgeschlagen, und ich möchte diese Tools nutzen, bin jedoch verwirrt darüber, wie sie in einen Workflow integriert werden können.

Benötige ich alle Änderungen an einer Site auf einem Entwicklungsserver und übertrage sie nach der Genehmigung live? Was ist mit dem Schreiben von Blog-Posts? Es scheint übertrieben, Beiträge auf dev zu schreiben und die Änderungen live zu übertragen. Aber wie synchronisiere ich dann die Datenbanken, wenn sie auf der Live-Site bearbeitet werden? Ich habe das Internet durchsucht. Eine Anleitung wäre dankbar.

kostenlos
quelle
Ich denke, dies ist eine Frage des Ökosystems außerhalb des Anwendungsbereichs. Hier finden Sie eine laufende Diskussion .
Chip Bennett
4
@ChipBennett Ich bin anderer Meinung. Die spezifischen Abhängigkeiten von WordPress zwischen Themen, Plugins und Datenbanken sowie deren Auswirkungen auf die allgemeine Entwicklerpraxis sind willkommen.
Fuxia
@toscho Davon könnte ich sicher überzeugt sein; Deshalb habe ich auf die Meta-Diskussion hingewiesen. :)
Chip Bennett

Antworten:

9

Zunächst müssen Sie erkennen, dass es hier zwei Workflows gibt: Ihren und Ihren Kunden.

Ihr Workflow

  • PSD erhalten
  • Code HTML / CSS
  • Code WordPress-Vorlage
  • Stellen Sie das Thema für eine Live-WordPress-Site bereit

Ihr Workflow

  • Entwickeln Sie die erforderlichen Änderungen und senden Sie eine E-Mail
  • Schreibe Beiträge
  • Fotos hochladen

Die Angelegenheit

Die Implementierung der Versionskontrolle hier hat absolut nichts mit dem Workflow Ihrer Kunden zu tun. Es geht darum, den Code zu verfolgen, den Sie für das WordPress-Theme verwenden. Alle Ihre Themendateien, benutzerdefinierten Plugins usw. sollten sich in einem Versionskontrollsystem befinden (Git, Mercurial, Subversion oder was auch immer Sie verwenden möchten).

Ihr Workflow wird dann:

  • Code schreiben
  • Übernehmen Sie Änderungen am Versionskontrollsystem
  • Änderungen an Produktionsstandort übertragen
  • Erhalten Sie Kommentare vom Kunden zurück
  • Code schreiben
  • Änderungen festschreiben
  • Code schreiben
  • Änderungen festschreiben
  • Änderungen an Produktionsstandort übertragen

Denken Sie daran, dass hier ein Versionskontrollverlauf für Ihren Code verwaltet wird . Code sollte von Ihren Kunden nicht geändert werden - und Sie sollten den Code auf einer Produktionsstätte niemals ändern, während er in der Produktion ist.

Änderungen am Inhalt (Beiträge, Fotos usw.) liegen jedoch außerhalb des Bereichs Ihres Versionskontrollsystems. Mit anderen Worten, Sie nehmen keine Änderungen in der Entwicklung vor und übertragen die Datenbank dann an die Produktion. Das ist eine schlechte Entwicklungspraxis. Wenn die Entwickler- und Produktdatenbanken synchron sein müssen, sollten Sie routinemäßig ein Backup aus der Produktionsbox ziehen und Ihre lokale Version aus diesem Backup wiederherstellen.

Codeänderungen fließen von der Entwicklung in die Produktion.
Datenbankänderungen fließen von der Produktion in die Entwicklung.

EAMann
quelle
Sie können die Datenbanken nur dann wirklich einfach synchronisieren, wenn Sie über ein spezielles Skript verfügen, das die Speicherung der Inhaltsdaten in der Datenbank verwaltet. Aus diesem Grund trennen Sie Code von Inhalten in Ihrem Workflow. Alternativ können Sie einen Staging-Server verwenden oder versuchen, eines der DB-Synchronisierungsskripte zu verwenden oder Ihr eigenes zu schreiben.
Wyck
@EAMann Tolle Antwort, danke! Das einzige, was ich dem von Ihnen beschriebenen Workflow hinzufügen würde, wäre, Code zu schreiben, Änderungen festzuschreiben, auf die Entwicklungssite zu pushen, Kommentare vom Client zurück zu erhalten, ... Ich hatte nicht zwei separate Workflows in Betracht gezogen, da wir regelmäßig die ändern müssen zufrieden uns für die Kunden. Gelegentlich müssen wir HTML in den Inhalt einfügen, um spezielle Anforderungen innerhalb des Inhalts (spezielle Stile usw.) zu berücksichtigen. Manchmal benötigen sie die Genehmigung des Kunden, bevor sie live geschaltet werden. Aus diesem Grund müssen die Datenbanken synchronisiert werden. Gibt es Best Practices für diese Art der Einrichtung?
Kostenlos
@Wyck Anstatt Inhalte neben dem Thema abzulegen, ist es sinnvoll, die beiden Prozesse zu trennen. Ich mag die Idee eines Entwicklungsbereichs für Themen und eines Staging-Bereichs für Inhalte, die unabhängig voneinander gelöscht werden. Das einzige Problem, das ich sehe, ist, dass Kunden sowohl das Thema als auch den Inhalt (die Website in ihrer Gesamtheit; statische Seiten) sehen möchten, bevor sie live gestartet werden.
Kostenlos
Es geht normalerweise nicht darum, Datenbankänderungen zu synchronisieren. Was ich damit sagen wollte ist, dass Sie einen Speicherauszug Ihrer Produktionsdatenbank erstellen und Ihre lokale Entwicklungsdatenbank durch diese ersetzen . Sie können es zwar mit einem Skript automatisieren ... aber Sie werden es wahrscheinlich nicht sehr oft tun.
EAMann
3
Es gibt noch nicht, ist es wirklich ein Dorn im Auge von WordPress, aber nicht speziell ein WordPress-Problem, da viele CMS dieses Problem haben. Sie können es hier lesen. Wordpress.stackexchange.com/questions/119/… ausführlicher, einige Es gibt zwar Skripte, aber die meisten befinden sich im Haus, da sie für eine bestimmte Umgebung spezifisch sind.
Wyck
1

Sie können Software verwenden, die die Datenbanken synchronisiert. Es besteht aber auch die Möglichkeit, die Daten selbst mit http://chronicdb.com zu versionieren

Gary
quelle
Das sieht interessant aus; kann einige der Probleme lösen. Ich werde das überprüfen, danke.
Kostenlos
1

Ich habe gerade eine gründliche Antwort auf eine andere Frage geschrieben. Persönlich benutze ich Git und es ist fantastisch. Für den Einstieg würde ich empfehlen, http://gitref.org/ und http://help.github.com/mac-set-up-git/ zu besuchen . Wenn Sie der Buchtyp sind, habe ich diesen gelesen und er ist definitiv den Preis von 22 US-Dollar für E- Books wert. Lassen Sie es sich tun, Sie werden diese Entscheidung nicht bereuen.

Matthew Boynes
quelle
Danke, ich muss darauf zurückgreifen. Das Setup der Master / Slave-Datenbank klingt interessant. Vielen Dank für die Anleitung
kostenlos