Wir versionieren alle unsere Kernbibliotheken.
So zum Beispiel sieht das SVN wie folgt aus:
/repo/lib1/trunk/
/repo/lib1/tags/1.0
/repo/lib1/tags/1.1
/repo/lib1/branches
...
Dies vermeidet die Situation, in der Sie BC, oder etwas brechen, und es erfordert ein Update für die anderen drei Projekte, die die Bibliothek verwenden.
Weiter verwenden wir svn:externals
zu Verbindung diese Bibliotheken in Projekten.
/repo/project1/tags/1.0
/repo/project1/trunk/Bibliothek
...
svn propedit svn:externals /repo/project1/trunk/library
Geben Sie die folgenden Schritte aus:
lib1 svn: //host/repo/lib1/tags/1.1
... und die Änderung bestätigen.
Project1 selbst folgt der Konvention (Tags für Releases, usw.).
Abhängig von der Sprache Ihrer Wahl gibt es natürlich andere Optionen. Lassen Sie es mich wissen, wenn Sie ins Detail gehen können und ich sehe, ob ich meine Antwort erweitern kann. Aber alles in allem ist es so einfach. Keine anderen Build-Tools erforderlich.
Wir tun alle unsere Bereitstellung direkt aus Subversion (über capistrano). Es ist im Grunde nur Auschecken des Tags und fertig. Ermöglicht sogar eine Heißfixierung. Wenn Sie mir erlauben pimpen meine eigene blog - Ich habe ausführlich zu diesem Thema geschrieben ("Bereitstellung von Svn").
HTH!