Wir haben derzeit eine große Lösung in C#, die aus etwa 40 Projekten besteht.Teilprojekte der .net-Lösung einzeln auf SVN überprüfen
Eine zweite Lösung für einen anderen Client ist fast identisch und verwendet viele der gleichen Projekte mit einigen weggelassen, und einige andere enthalten, die nicht in der ersten Lösung vorhanden sind.
Um Code-Versionsverwaltung besser handhabbar zu machen, möchte ich jedes Projekt in der Lösung zu SVN als einzelne Projekte einchecken, aber keiner der SVN-Clients, die ich versucht habe, scheint dies zu unterstützen, ohne manuell jedes Projekt hinzuzufügen.
Das gewünschte Ergebnis ist:
1) Öffnen Sie die Lösung für Client A, und Änderungen an einem gemeinsamen Projekt 2) Commit die Änderungen, dann die Lösung schließen. 3) Öffnen Sie die Lösung für Client B. Die in "1" vorgenommenen Änderungen sind in Client B-Lösung verfügbar. 4) Nehmen Sie Änderungen an einem Projekt vor, das für Client B spezifisch ist. Wenn diese festgeschrieben sind, werden die Änderungen von "1" nicht als ausstehend angezeigt.
Ich habe versucht AnkhSVN und VisualSVN, aber in beiden Fällen, die Auswahl von Projekten und Ausführen Add selected projects to Subversion
gibt mir die Option, die Stammlösung hinzuzufügen, aber nicht die Projekte einzeln.
Am nächsten kam ich mit Tortoise, aber das musste jedes Projekt manuell hinzufügen, was für so viele Quellprojekte keine praktikable Option ist.
EDIT: Wie vorgeschlagen, würde die Verwendung einer gemeinsamen Lösung und zwei separate Client-spezifische Lösungen das Problem der Übergabe des Codes an SVN lösen, würde aber erfordern, gegen DLLs zu kompilieren, die im Voraus kompiliert werden müssten.
Wir haben anfangs mit diesem Ansatz experimentiert, aber aufgrund von Problemen mit VS, die DLLs manchmal nicht richtig neu geladen haben, hatten wir Probleme mit dem Debugging.
Ich bin nicht sicher, ob es möglich ist, Projekte auf diese Weise mit einem automatisierten Prozess hinzuzufügen, aber würde Vorschläge begrüßen, bevor ich in den sauren Apfel beiße und etwas Code schreibe, um es zu tun.
Vielen Dank.
Ich habe dies als eine Option betrachtet. Das Problem ist, dass wir beim Testen den Code für die gesamte in der IDE vorhandene Lösung zum Debuggen benötigen. Anfangs haben wir gegen DLLs kompiliert, aber Probleme mit dem Debugging gefunden. Bis jetzt ist ein Nuget-Repo für den gemeinsamen Code dem am nächsten, was ich erreichen möchte, aber es ist immer noch nicht ganz da. Ich bin mir nicht sicher, ob SVN jemals so entwickelt wurde. – Alex
Das ist, was Tests für :) – Dave
Yup, aber für den Moment haben wir nicht viele Komponententests für die Codebasis.Ich habe daran gearbeitet, es zu refaktorisieren und Tests zu machen, aber die Zeitbeschränkungen haben den Fortschritt sehr langsam gemacht. Wir verwenden ein Build-Skript, um die endgültige Version zu generieren, aber das bringt noch keine kompilierten Artefakte auf einen Server. Im Wesentlichen versuche ich, ähnliches Verhalten wie ein Maven-Projekt zu bekommen (aber ohne POM-Hölle). – Alex