Reusing Subversion-managed Library Projects in Visual Studio
Just posting this as it would have saved me some time myself back then:
In the ConSense Prototype I have some custom libraries (especially the proprietary RDF-framework) which are used in multiple application-solutions (WPF Cockpit, VSTO Plugins, Windows/WCF Service, Plugins for those Service etc..).
So - even if you use Subversion this still leaves the question open how to keep the libraries in sync, assuming they are included in multiple Visual Studio solutions and potentially simultaneous changes before a check-in can occur.
The solution for me - and I hope you allow some advertisement for a commercial software here - was the combination of svn:externals and the VisualSVN Visual Studio plugin.
The libraries are kept in a separate directory in subversion and referenced as an external in the "main" application's subversion properties:
Select the application directory in subversion (Tortoise -> Repo-browser) and in the properties section (right click on the directory and select properties) add a new key "svn:externals". The value looks something like
Externals/ConSense.Generic.Rdf http://subversion.consense-project.com/2_Generic/ConSense.Generic.Rdf
with the first part being the directory the external sources will be included in in your application solution upon checkout and the second being the svn-path to the external. When you now checkout the application using VisualSVN the library source files are automatically checked out as well in the (above screenshot: /Externals/) directory you specified as first parameter in the properties.
The only caveat is that the global checkout-button of VisualSVN does only checkout the main solution, not the included externals so additional manual checkouts (right click on the external-project --> subversion --> checkout)are needed.
rss


