17 Stimmen

Hochgradig gekoppelte Git-Submodule

Ich habe ein Projekt, das in zwei Repositories aufgeteilt werden muss: eine Reihe gemeinsamer Modelle und eine Simulation, die auf diesen Modellen basiert, mit zusätzlichem Code. Letztendlich kann es mehrere Simulationen geben, die denselben Satz von Modellen verwenden, so dass es unbedingt erforderlich ist, sie in einem separaten Repository zu haben. Die naheliegende Lösung ist, die gemeinsamen Modelle als Untermodul der Simulation zu haben.

Leider werden die beiden Repositories sehr stark gekoppelt. Die Leute werden sehr häufig etwas zu ihren allgemeinen Modellen hinzufügen und es dann sofort in der Simulation verwenden. Ich kann mir vorstellen, dass dies für viel Kopfzerbrechen im Integrationsprozess des Simulations-Repos sorgen wird. Um Änderungen von vielen Entwicklern in der Simulation zusammenzuführen, wird der Integrator parallele Zusammenführungen im Submodul für gemeinsame Modelle durchführen müssen. Auf der anderen Seite macht es die Verwendung von Submodulen unumgänglich - die Simulation ist wirklich braucht um zu wissen, welche Version der gemeinsamen Modelle er verwenden sollte.

Das Projekt wird von einer großen Anzahl von Personen bearbeitet. Die meisten der Entwickler haben nur ein sehr oberflächliches Wissen über Git: Sie fügen Dateien hinzu, übertragen und ziehen viel von Origin und haben hoffentlich einen Dev- und Stable-Zweig. Der Integrator hat natürlich schon einiges mehr gelernt, aber alles, was mit Submodulen zu tun hat, wird für ihn sicherlich neu sein. Zusätzlicher Bonus: Ich werde bald einen Monat Urlaub nehmen, also werde ich nicht in der Lage sein, irgendwelche Brände zu löschen. Das Ergebnis ist, dass es eine Menge Anreize gibt, den Arbeitsablauf zu verbessern. realmente und die Unterschiede zu den bisherigen Arbeitsabläufen der Mitarbeiter zu minimieren.

Meine Fragen lauten also: Werde ich es bereuen, dass ich die Verwendung von Submodulen für diese Aufgabe empfohlen habe? (Gibt es eine bessere Idee?) Mit welchen Fehlern muss ich rechnen, so dass ich im Voraus vor ihnen warnen kann? Gibt es gute Workflow-Strategien, die man im Hinterkopf behalten sollte?

Edit: Ich bin gerade auf Folgendes gestoßen Git-Slave die in diesem Zusammenhang ebenfalls einen Blick wert sein könnte. Über die Angaben auf der Website hinaus kann ich noch keine gute Bewertung der Fähigkeiten/Einschränkungen abgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X