Hallo zusammen,
wir sind aktuell dabei unsere aktuelle Versionsveraltung (
JEDI VCS) auf git umzustellen. Dabei wollen wir gleichzeitig einige Dinge innerhalb unserer Projektverwaltung verbessern.
Nun haben wir ein konkretes Problem, wo wir nicht genau wissen, wie wir es mit git am besten lösen:
Wir haben oft das Problem, dass komplett verschiedene Projekte "Gemeinsame Units" verwenden. Diese Units liegen in einem Überordner und können z.B. den Umgang mit
XML-Dateien oder SQLite regeln. Oft befinden sich aber auch einfach ganz allgemeine Funktionen in diesen "Gemeinsamen Units", welche man immer mal wieder benötigt.
Aktuell fügen wir diese "Gemeinsamen Units" entweder direkt dem Projekt hinzu oder fügen einfach bei Suchpfade den Ordner hinzu.
Findet man nun z.B. einen Bug innerhalb dieser "Gemeinsamen Units", dann wirkt sich diese Änderung natürlich unmittelbar auf alle Projekte aus, die diese "Gemeinsamen Units" verwenden. Das ist natürlich in den meisten Fällen gewünscht.
Würde man nun aber mal grundlegende Änderungen in diesen "Gemeinsamen Units" durchführen, dann hätte das natürlich auch negative Folgen auf alle Projekte.
Jetzt ist die Frage, wie wir diese Problematik in Zukunft lösen und vor allem, wie wir das Ganze in git abbilden.
Es wäre natürlich wünschenswert, wenn man beispielsweise mal in "Projekt 1" mit git einen alten Versionsstand zurücksetzen könnte. Dann wäre es natürlich auch toll, wenn die "Gemeinsamen Units" auf Wunsch diesen alten Versionsstand annehmen würden.
Ebenso wäre es kein Problem, wenn man bei einer Änderung in den "Gemeinsamen Units" bei jedem Projekt, welches diese "Gemeinsamen Units" verwendet eine Art Update machen muss, damit diese Änderungen auch hier wirksam werden.
Vllt habt Ihr aber auch noch eine bessere Idee zur Umsetzung?
Bei diesem Aufbau...
Repository1: Gemeinsame Units
Repository2: Projekt 1 (Link auf Gemeinsame Units)
Repository3: Projekt 2 (Link auf Gemeinsame Units)
...kann man zwar alles gut einzeln verwalten, es bestehen aber folgende "Probleme":
- Änderungen in den "Gemeinsame Units" haben direkten Einfluss auf Projekt 1 und 2.
- Bei einer Rücksetzung von Projekt 1 auf einen alten Stand ändert sich an den "Gemeinsamen Units" nichts.
Lassen sich meine Wünsche überhaupt Umsetzen? Oder habe ich vllt ein Brett vor dem Kopf und alles ist ganz einfach?
Ich würde mich sehr über Anregungen freuen! Vllt könnt Ihr mir auch beschreiben, wie Ihr es bei Euch löst.
Grüße
Headbucket