[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Help with vendor dependency management and svn:externals

From: Adam Tybor <adam.tybor_at_gmail.com>
Date: 2006-10-20 20:09:27 CEST

Hi,

I have recently made the switch from vss to svn for my projects and
so far I am loving it! Cheers to all the svn devs out there!

I am using a single repository for my projects and I also am tracking
dependencies with vendor branches and vendor binary releases.

My layout looks like this.

/
/projects
/projects/foo
/projects/foo/branches
/projects/foo/tags
/projects/foo/trunk
/projects/foo/trunk/libs
/vendor-bin
/vendor-bin/bar
/vendor-bin/bar/current
/vendor-bin/bar/current/bin
/vendor-bin/bar/current/bin/bar.dll
/vendor-bin/bar/v1.0.0.0
/vendor-bin/bar/v1.0.0.0/bin
/vendor-bin/bar/v1.0.0.0/bin/bar.dll
/vendor-bin/bar/v1.0.0.0/bin/other_lib.dll
/vendor-bin/fubar/current
/vendor-bin/fubar/current/bin
/vendor-bin/fubar/current/bin/bar.dll
/vendor-bin/fubar/current/bin/fubar.dll

What I tried to do, which failed, was add the svn:externals property to the
libs directory to point to specific files.
svn:externals
other_lib.dll http://repo/vendor-bin/bar/current/bin/other_lib.dll
bar.dll http://repo/vendor-bin/fubar/current/bin/bar.dll
fubar.dll http://repo/vendor-bin/fubar/current/bin/fubar.dll

The thought process being that some projects I ALWAYS want on the current
version of the library while other projects may need a specific version.
This also solves an inter dependency issue I have where vendor fubar
 may depend on vendor bar and actually have a custom built bar.dll of its
 own. I would also like the ability to have project tags using references to
specific revisions of the vendor binaries.

I first tried doing this via a copy, but I realized that once the
vendor-bin/.../current is updated my copy in the project still points to
the old revision.

The only other workaround I can think of is to have sub directories in my
project/lib directory for each vendor. I can then set an external reference
to the whole bin directory from the vendor. My project would then need to
manage references on its own. i.e. I would end up having two bar.dll files
but my project would only reference the bar.dll from /lib/fubar/bar.dll.
This also adds a little more overhead than I would like as many times not
every file from the vendor is required and some of these vendor directories
are huge (50+ MB).

Are there any suggestions or workarounds for this? Has anyone else run into
this and how do you handle it? Is this just an edge case and I am crazy
or could this be a relevant feature request?

Thanks,

Adam
Received on Fri Oct 20 20:10:15 2006

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.