Ich arbeite an einem Inhaltssynchronisationsmodul für Drupal. Es gibt ein Servermodul, das sich auf einer Website befindet und Inhalte über einen Webdienst verfügbar macht. Es gibt auch ein Client-Modul, das sich auf einer anderen Site befindet und den Inhalt in regelmäßigen Abständen abruft und importiert.
Der Server wird auf Drupal 6 erstellt. Der Client wird auf Drupal 7 erstellt. Es wird eine Druapl 7-Version des Servers benötigt. Und dann wird eine Drupal 8-Version sowohl des Clients als auch des Servers erforderlich sein, sobald sie nächstes Jahr veröffentlicht wird.
Ich bin ziemlich neu in der Git- und Quellcodeverwaltung, also habe ich mich gefragt, wie ich die Git-Repositorys am besten einrichten kann. Wäre es ein Fall, ein separates Repository für jede Instanz zu haben, dh:
Drupal 6 server = 1 repository
Drupal 6 client = 1 repository
Drupal 7 server = 1 repository
Drupal 7 client = 1 repository
etc
Oder wäre es sinnvoller, ein Repository für den Server und ein anderes für den Client zu haben und dann Zweige für jede Drupal-Version zu erstellen?
Derzeit habe ich 2 Repositorys - eines für den Client und eines für den Server.
quelle
Ich habe solche Variationen gesehen und damit gearbeitet. Alles in einem Ordner mit Unterordnern für Server und Client oder jeweils einem Repo. Ich bevorzuge das einzelne Repo für jeden Hauptteil des Projekts.
Bei großen Versionsänderungen würde ich einfach auch neue Repos erstellen. Auf keinen Fall unterschiedliche Branchen für sie haben. Während Zweige für die Implementierung neuer Funktionen und möglicherweise eines permanenten Bereitstellungszweigs leistungsstark sind, vermeide ich immer, dass zu viele von ihnen lange Zeit parallel ausgeführt werden. Sie müssen sie immer pflegen (Rebases durchführen, wenn sich der Hauptzweig geändert hat usw.), also halten Sie die grundlegende Strukturierung so einfach wie möglich. Ein zusätzliches Repo zu haben ist (meiner bescheidenen Meinung nach) weniger schmerzhaft als das Jonglieren von Zweigen in verschiedenen Staaten. Insbesondere, wenn Client und Server nicht viel Code gemeinsam nutzen.
Ich weiß nicht viel über Drupal und wie stark die Unterschiede zwischen den Versionen sind. Mein Grund, andere Repos zu bevorzugen, basiert also mehr auf meiner Erfahrung mit Rails. Zwischen den Versionen gibt es manchmal große Unterschiede in Bezug auf die Benennung von Dateien oder die Ordnerstruktur (z. B. Asset-Pipeline), wodurch das Erstellen eines neuen Repos komfortabler wird. Drupal (oder ein anderes Framework) kann weniger Unterschiede aufweisen, dann wäre es in Ordnung, einfach innerhalb des vorhandenen Repos fortzufahren.
quelle