Laden...

[Git] Erstellung von Repositories für Teilprojekte

Erstellt von Caveman vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.425 Views
Caveman Themenstarter:in
187 Beiträge seit 2009
vor 5 Jahren
[Git] Erstellung von Repositories für Teilprojekte

Hallo,
ich möchte mir angewöhnen, mit Git zu arbeiten.
Für einfache Sachen (nur ein Projekt in der Mappe) komme ich mittlerweile ganz gut klar damit.
Jetzt schwebt mir allerdings was vor, wo ich mehrere Projekte in einer Mappe habe - ein WPF Projekt und ein paar Klassenbibliotheken. Hier scheine ich nun einen Denkfehler zu haben, denn ich möchte gerne für jedes Teilprojekt ein eigenes Repository anlegen. Das scheint aber nicht möglich zu sein.
Hintergrund: Wenn ich eine Klassenbibliothek in einem anderen Projekt mit einbinde, dann möchte man ja auch weitere Änderungen in dem der Klassenbibliothek zugehörigen Repository speichern und nicht in dem Repository der Projektmappe.
Wie ist in so einem Fall die Vorgehensweise?

P
441 Beiträge seit 2014
vor 5 Jahren

Hi,

du kannst durchaus einzelne Repositories pro Teilprojekt anlegen, das bringt aber nur Komplexität in dein Sourcecode handling und würde nur dann Sinn machen, wenn du die Teilprojekte anderweitig noch verwendest. Wenn du allerdings die Teilprojekte anderweitig verwendest ist es wesentlich sinnvoller diese in einen Paketmanager (für .net wäre das nuget) auszulagern. Möchtest du deine nuget Pakete nicht veröffentlichen, so kannst du auf private Feeds oder auch einen Ordner zurückfallen um deine Pakete zu verwalten.

Dafür musst du allerdings erst einmal an einen Punkt kommen, an dem du die notwendigkeit hast ein Teilprojekt ausserhalb deiner aktuellen Solution zu verwenden.

16.827 Beiträge seit 2008
vor 5 Jahren

H
Jetzt schwebt mir allerdings was vor, wo ich mehrere Projekte in einer Mappe habe - ein WPF Projekt und ein paar Klassenbibliotheken.

Das widerspricht im Prinzip dem modernen Modularisierungsgedanken und dem DevOps-Zeitgeist.
DevOps - und ja, dazu gehören auch Klassenbibliotheken zB. auf NuGet Basis - erfordert eine eigene Deploybarkeit - und die gibt es nur in getrennten, isolierten Repositories.

Wie klein man diese Projekte aber schneidet, damit der Overhead nicht zu viel wird; dafür gibt es leider keinen perfekten Weg.
Tools wie VSTS geben Dir aber bei sowas so extrem viel Automatismus, dass Du kaum Overhead hast - ausser Deine saubere Arbeit mit Git.

Wie ist in so einem Fall die Vorgehensweise?

Eigene Repositories, mit einer eigenen Build- und Release Pipeline, die dann ein NuGet Paket auf einen Feed pushen.

In Deinen Anwendungen kannst Du dann einfach die Pakete nutzen.
Als Versionierungstool empfehle ich Dir GitVersion.