Bitte erzwingen Sie bitte nicht, dass Ihre Benutzer ein gesamtes Repository auschecken, um die Dinge zu erstellen. Dies erinnert an das alte quelloffene Modell und war damals nicht gut.
Mit einem Repository pro Projekt ist fein. Wenn Projekt1 Code aus Projekt2 benötigt, fügen Sie eine Eigenschaft "svn: externals" zum Stamm von project1 hinzu, die project2 an einen sinnvollen Ort im Verzeichnis von project1 bringt. Wenn Projekt2 den Code von project3 benötigt, kann er auch eine externe Eigenschaft haben und den Code darunter einfügen.
Es ist eigentlich am besten, wenn die externe Referenzen immer auf ein Tag oder eine bestimmte Revision verweist, aber ich werde Sie auf Stamm verweisen, wenn Sie das Problem "ein riesiger Projektbereich" vermeiden.
Wenn Sie mit externen arbeiten, kann jeder einfach das gewünschte Projekt auschecken und automatisch bekommen alle Abhängigkeiten und einfach wegbauen - ganz wie Sie wollen. Ihr gesamter Code ist in einem einzigen Arbeitsverzeichnis enthalten, das genau das enthält, was sie brauchen. Sie können mehrere Versionen mehrerer Projekte in separaten Arbeitsverzeichnissen auschecken, ohne Platz zu verschwenden und trotzdem den Überblick zu behalten, was zur Hölle passiert.
Es kann eine geringfügige Umgestaltung Ihres Arbeitsbereichs erforderlich sein, wenn Projekt1 erwartet, Projekt2 außerhalb des Projektordners statt innerhalb zu finden, aber das ist eine kleine Verbesserung im großen Schema der Dinge.
Wenn Sie Ihr Herz wirklich auf ein einziges Repository legen, ist das auch in Ordnung (das verwenden wir an meinem Arbeitsplatz, und zu Hause, um darüber nachzudenken), stellen Sie jedoch sicher, dass Sie eine Struktur für jedes Projekt haben hat seine eigenen Tags, Stamm & Filialen Ordner, und das Auschecken der Kofferraum von project1 ist alles, was Sie tun müssen, um den Code für Projekt1 zu erstellen.
Schließlich, wenn Sie wirklich ein funky Layout für Ihre Projekte benötigen, können Sie ein zusätzliches einzelnes Repository hinzufügen, das ist im Wesentlichen ein Meta-Repository. Dieses Repository enthält 1 Verzeichnis pro Top-Level-Projekt (mit Stamm-Tags & Verzweigungen), und verwenden Sie externe, verweisen Sie auf alle anderen Projekte und erstellen Sie den funky Workspace genau so, wie Sie es erwarten.
Auf diese Weise erhalten Sie durch Hinzufügen des zusätzlichen Repositorys alle Vorteile des Auscheckens und Erstellens in einem Schritt und haben zumindest die Chance, Situationen zu meistern, in denen für Projekt1 erforderliche Änderungen aufgrund von Code, der mit project2 geteilt wird, brechen Sie müssen plötzlich eine Notfall-Lösung für Projekt 3 bekommen.
http://geekswithblogs.net/kariemali/archive/2009/06/02/how-to-merge-two-svn-repositories.aspx – JDPeckham