Sollte ich Module in meinem Projekt zur Quellcodeverwaltung beitragen?
8
Mir wurde gesagt, dass ich während der Entwicklung alles unter Kontrolle sites/in meinem Code-Repository (z. B. SVN) steuern sollte .
Angenommen, ich werde niemals eines der von mir verwendeten Contrib-Module ( usw.) berühren ctools, viewssondern nur mein eigenes Thema erstellen. Sollte ich das trotzdem tun?
Oder sollte ich einfach alles unter Quellcodeverwaltung steuern sites/all/themes/?
In meinem Team haben wir uns darauf konzentriert, nur das zu beschaffen, was für unser aktuelles Projekt spezifisch ist. Wenn wir zum Beispiel Ansichten verwenden, fügen wir den entsprechenden Eintrag zu unserer Drush-Make- Datei hinzu und versionieren diesen , aber nicht das Modul selbst.
Dadurch haben wir ein sehr kleines Repository, das aus benutzerdefinierten Modulen besteht, die für die aktuelle Site, das aktuelle Thema und die Exporte von Funktionen spezifisch sind.
Wenn Sie Drush und Drush Make absolut nicht verwenden können, verstehe ich nicht, warum man Versionskontrollcode verwenden sollte, der woanders gut versioniert ist. Und wenn Sie beabsichtigen, eines der Module zu hacken, sollten Sie dies erneut als Submodul hinzufügen und den Code nicht in Ihrem eigenen Repo versionieren. (Ich glaube, dies wird in SVN als Vendor Branch bezeichnet ).
Bearbeiten: Weitere Informationen und eine erweiterte Einrichtung finden Sie in diesem Repository: [email protected]: letharion / Drupal-build-scripts.git Die Skripte sind in Bash geschrieben, um den Workflow meines Teams zu unterstützen, der ein Gebäude enthält Ein Basisinstallationsprofil ( NodeStream ), dann unser ortsspezifisches Profil, eine Make-Datei für jedes Profil, Hooks zum Anwenden von Patches oder andere Änderungen an einzelnen Build-Schritten usw. Ich hoffe, ich finde die Zeit, dies erneut zu tun -schreibe es in naher Zukunft als drush Erweiterung.
Vielen Dank für Ihre ausführliche Erklärung. Ja, ich benutze Drush und plane, so viel wie möglich zu automatisieren. Und ich habe nicht vor, Code in Kern- oder Contrib-Modulen zu ändern.
Cherouvim
+1 Versionierung der make-Datei ist eine großartige Idee, denke ich werde das in Zukunft tun;)
Clive
1
@Letharion Ich verstehe nicht ganz, wie das funktioniert, wenn dieselbe Site mit verschiedenen Entwicklern gleichzeitig entwickelt wird. AFAIK drush make lädt immer alle Abhängigkeiten herunter und versucht, Sites / Standard zu überschreiben, auch wenn diese Module bereits D / L-fähig waren, oder gibt es eine undokumentierte Option, nur aktualisierte / neue Module herunterzuladen? Mit anderen Worten: Ich verstehe den Vorteil der Verwendung von Drush make für die Neuinstallation, aber wie verwenden Sie es, um die Modulabhängigkeiten in einem verteilten Team synchron zu halten?
Creynders
Ich verwende diesen Ansatz seit über einem Jahr, aber jetzt frage ich mich, ob es wirklich besser ist, als nur alles in einem Repo zu haben, wenn ich mit anderen Entwicklern zusammenarbeite, die die Plattform möglicherweise nicht jeden Tag neu aufbauen. Darüber hinaus ist dieser Ansatz nicht wirklich kompatibel mit der Art und Weise, wie Acquia seine Repos für das Cloud-Hosting strukturiert.
David Meister
6
Im Gegensatz zu @ Letharions Antwort ist es für einige Unternehmen sinnvoll, alles in SVN zu platzieren, und es hängt wirklich davon ab, wie Sie Ihre Rollouts durchführen. Das Einfügen von Contrib-Modulen und -Themen in SVN kann sinnvoll sein, wenn Sie jemals "in die Vergangenheit" gehen und sich eine alte Version einer Site ansehen müssen.
Ein Beispiel hierfür ist praktisch, wenn Sie einen Fehler in einem Contrib-Modul vermuten oder ein anderes Verhalten feststellen. Es kann hilfreich sein, eine Vollversion aus der Vergangenheit wiederherstellen zu können.
Ich fand es auch praktisch, einen vollständigen Site-Snapshot in SVN zu haben, wenn ich herausfinden muss, was ein Client mit einer Site gemacht hat. Ich kann einen vollständigen Schnappschuss ihrer Version machen und ihn als Zweig in SVN einfügen und vergleichen.
Um in die Vergangenheit zu reisen, benötige ich auch die entsprechende vollständige Datenbanksicherung. Weil sich einige Einstellungen und Konfigurationen in der DB befinden. Ist das richtig?
Cherouvim
Ja. Das Backup and Migrate-Modul und / oder Drush Archive-Backup ist hier Ihr Freund.
mpdonadio
1
Mit dieser Methode können Sie eine gesamte Installation aus der Versionskontrolle und einem Backup klonen, was für die Entwicklung oder das Debuggen von Live-Sites sehr hilfreich sein kann.
Im Gegensatz zu @ Letharions Antwort ist es für einige Unternehmen sinnvoll, alles in SVN zu platzieren, und es hängt wirklich davon ab, wie Sie Ihre Rollouts durchführen. Das Einfügen von Contrib-Modulen und -Themen in SVN kann sinnvoll sein, wenn Sie jemals "in die Vergangenheit" gehen und sich eine alte Version einer Site ansehen müssen.
Ein Beispiel hierfür ist praktisch, wenn Sie einen Fehler in einem Contrib-Modul vermuten oder ein anderes Verhalten feststellen. Es kann hilfreich sein, eine Vollversion aus der Vergangenheit wiederherstellen zu können.
Ich fand es auch praktisch, einen vollständigen Site-Snapshot in SVN zu haben, wenn ich herausfinden muss, was ein Client mit einer Site gemacht hat. Ich kann einen vollständigen Schnappschuss ihrer Version machen und ihn als Zweig in SVN einfügen und vergleichen.
quelle