Obwohl dies eine alte Frage mit einer akzeptierten Antwort ist, glaube ich, dass noch Platz für eine andere ist.
Lassen Sie mich zunächst sagen, dass Features meiner Meinung nach nicht das richtige Werkzeug für diese Aufgabe sind, und dass wir einen alternativen Satz von Werkzeugen vorschlagen werden.
Voraussetzung für die Zusammenarbeit im Team ist ein Staging-Server zum Testen von Entwicklungsversionen des Projekts, der von Ihrem Produktionsserver getrennt ist. Der gesamte Entwicklungscode wird auf dem Staging-Server getestet und nur dann auf den Produktionsserver übertragen, wenn er stabil und bereit für die Bereitstellung ist. Die Entwickler arbeiten jedoch nicht direkt am Staging-Server. Jeder Entwickler arbeitet an seinem eigenen Arbeitsplatz und koordiniert seine Arbeit mit dem Rest des Teams mithilfe einer Versionskontrolle und einer Quellcodeverwaltung (SCM).
Das SCM-System ermöglicht es Teammitgliedern, parallel an verschiedenen Zweigen des Codes zu arbeiten, ohne sich gegenseitig zu stören. Zu Testzwecken wird auf dem Staging-Server nur der Master- Zweig bereitgestellt.
Um die Datenbank zwischen Produktion, Staging und Workstations zu spiegeln, gibt es ein Modul mit dem Namen Sichern und Migrieren , das verwendet werden kann, wenn Sie sich auf einem gemeinsam genutzten Hosting befinden und keine eigene Datenbank verwalten. Wenn Sie Ihren eigenen Datenbankserver verwalten, dies das einzige Projekt auf diesem Server ist und Sie mysql verwenden , sind die folgenden Befehle hilfreich:
Zu entleeren:
mysqldump --all-databases --opt -u root -p > DUMP.sql
Etwas wiederherstellen:
mysql -u root -p < DUMP.sql
Wenn Ihre Datenbank nicht die einzige auf diesem Server ist, erstellenmysqldump
Sie ein Skript für eine Version von (oder eine entsprechende Version, wenn Sie MySQL nicht verwenden ), die nur Ihre Datenbanken speichert.
Richten Sie eine Richtlinie so ein, dass es sich bei der Datenbank auf dem Produktionsserver um den Master handelt. Der Staging-Server und die Arbeitsstationen sollten eine Kopie der Produktionsdatenbank sein, nicht umgekehrt.
Beachten Sie, dass Drupal 7 alle Administratoreinstellungen in der Datenbank beibehält. Das bedeutet, dass durch das Spiegeln der Datenbank zwischen Produktionsstandort, Staging-Standort und Arbeitsstationen die Administratoreinstellungen ohne Features migriert werden .
Zum Teilen des Codes:
Die Standardmethode für die gemeinsame Nutzung von Code durch die Mitglieder eines Entwicklungsteams ist die Verwendung des SCM-Systems. Drupal wird standardmäßig mit einem solchen System namens git verwaltet .
Git ermöglicht die Verwendung von lokalen oder Remote-Repositories. Wenn sich die Teammitglieder im selben physischen Bereich befinden, können Sie ein lokales Repository auf Ihrem Staging-Server einrichten. Wenn sie geografisch verteilt sind, können Sie ein Remote-Repository einrichten. Wenn Sie nichts dagegen haben, dass andere Benutzer über Lesezugriff auf Ihren Code in der Entwicklung verfügen , können Sie eine Sandbox bei Drupal.org als Remote-Repository verwenden. Sie können auch einen Projektbereich auf GitHub verwenden . GitHub ist nicht nur ein Repository, sondern enthält auch einige Tools für die Zusammenarbeit und ermöglicht sowohl öffentliche als auch private Repositorys.
Grundsätzlich ermöglicht ein SCM-System den Teammitgliedern, Quellcode und Dokumentation aus dem von den Teammitgliedern gemeinsam genutzten Repository abzurufen und nach der Bearbeitung wieder einzuschieben. Der SCM protokolliert Änderungen und schlägt bei Konflikten (dh wenn jemand versucht, einen Code zu übertragen, der nicht die Änderungen enthält, die von einem anderen Teammitglied übernommen wurden) eine Lösung für diesen Konflikt vor.
In der Regel kommt es bei einer herzlichen Kommunikation über die Aufgabenteilung zwischen den Teammitgliedern nicht zu Konflikten. Mit dem SCM-System werden Konflikte jedoch auch dann beherrschbar, wenn Fehler gemacht werden oder die Kommunikation fehlschlägt.
Es gibt viele Tutorials zum Einstieg in und zur Verwendung von git (GIYF). Zwei, die ich empfehlen werde, sind: die Git-SCM- Website und Pro Git von Scott Chacon.