Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#3

AW: Anzahl an Repositories bei stark verwandten Projekten und Library

  Alt 3. Jun 2014, 18:30
Welche Versionsverwaltung Du nimmst ist im Prinzip je nach Gusto.

Verteilt hat Geschwindigkeitsvorteile wenn man an verteilten Standorten arbeitet, da nicht jede Operation wie branchen oder mergen zum Server muss sondern lokal passieren kann. Und branchen und mergen funktioniert einfach etwas besser, weil die verteilte Versionierung mehr Informationen mit sich trägt. Ich präferiere Git, aber grundsätzlich funktioniert das aber alles auch noch mit SVN.

Meine persönliche Präferenz, würden wir hier nicht von Delphi sondern z.B. von .NET, Java oder JavaScript (Node) reden wäre, jedes Projekt in ein eigenes Repo, einen automatisierten Build- und vor allem auch einen automatisierten Release-Prozess implementieren, und dann von den anderen Projekten aus nur noch die Kompilate bzw. die Packages (NuGet, Maven, NPM) einbinden. Als Build-Server bietet sich z.B. erstmal die kostenlose Version von TeamCity an.

Mit Delphi lassen sich Paket-Abhängigkeiten leider nicht so einfach verwalten, weswegen sich das prinzipiell eher schwierig gestalten würde, aber auch hier kann man Abhilfe schaffen:

Auch hier wieder alle Projekte in ihr eigenes Repository. Zusätzlich ein Repository, in dem nur gesharte Kompilate versioniert liegen (also alle Libraries und alle Komponenten-Packages). Diese könnten dann wieder automatisiert erstellt und aktualisiert werden.

Man checkt also das Projekt aus, an dem man arbeitet, und die fertigen Libraries aus dem zentralen Binary-Repo (als Ersatz für eine Package-Quelle).
Man kann hier dann auch per Git Sub-Repository bzw. SVN-Externals die fertig kompilierten Abhängigkeiten direkt im Repository referenzieren und gleichzeitig mit auschecken lassen. Dann ist das kein manueller Schritt mehr.

Wenn man sich dann noch an Semantic Versioning hält, dann kann man die Abhängigkeiten auch recht einfach verwalten und weiss ob man bei Updates aufpassen muss oder nicht.

Wir schmeissen bei Smarthouse gerade 5 gesharte Libs/Produkte mit einem 3-Mann Team (okay, wir waren auch Zeitweise mal bis zu 5), und die Ergebnisse die wir da produzieren werden von vielen Teams (insgesamt ca. 60-80 andere Kollegen) genutzt. Und das haben wir auch mit SVN und Externals gemacht, als Git und NuGet noch nicht so gehyped wurde
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat