Organizing Vendor Sources
In a Subversion repository, use the policies and procedures described in the Subversion book: (Chapter 7)
- http://svnbook.red-bean.com/nightly/en/svn.advanced.vendorbr.html
- http://svnbook.red-bean.com/nightly/en/svn.advanced.externals.html
- See also, the client-side tools in contrib http://svn.collab.net/repos/svn/trunk/contrib/client-side/
- There is an excellent description too at
http://weierophinney.net/matthew/archives/132-svnexternals.html
Using svn:externals
Essentially, vendor sources get tracked as top-level sources in the repository, and then our projects which depend on those sources use the svn:externals property to pull in the appropriate revision. When svn:externals are used, the original source is not ever incorporated into our tree. It is essentially a "link" into a remote SVN repository instead of a local mirror. It's preferred to load the original source to the /vendorsrc tree and use svn copy to use that code to pre-populate another location in the repository.
See a map of a Subversion/Repository Layout describing the organization of a typical software project repository (including vendor sources).
Use svnadmin to manipulate the repository, and when reorganizing things http://svnbook.red-bean.com/nightly/en/svn.ref.svnadmin.c.load.html