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

Re: Managing Vendor Branches

From: BRM <bm_witness_at_yahoo.com>
Date: Sat, 27 Feb 2010 09:56:53 -0800 (PST)

----- Original Message ----

> From: Jeff Mott <jeff.mott.or_at_gmail.com>
> I've recently needed to track changes for vendor code drops, so I read
> the SVN book's vendor branches chapter. But I'm not entirely happy
> with part of the procedure, so I'd like to talk it out and, I hope,
> find a better way.
> The part I hope to improve is when I have a versioned code drop in the
> /vendor directory, then the vendor provides a new code drop. The SVN
> book suggests that I should copy the new files over top of the files
> in my working copy. Then I need to SVN add and delete as needed. I saw
> there's a script to ease this process, but I still feel that this
> should be easier.
> It seems to me that comparing two trees, even unrelated trees, is
> something SVN is very good at. So if I have /vendor/code-drop-v1 and
> /vendor/code-drop-v2, then it seems SVN should be able to derive the
> changes between the two and apply those changes to my working copy.
> Can I do this?

Here's what I do:

In my repository I have a ThirdParty namespace (e.g. /ThirdParty) under which each Third-Party import has their own namespace (e.g. /ThirdParty/<import>/), with each having its own 'trunk', 'branches', and 'tags'.

When I import a new version, it goes into the 'branches'. This then gets merged to 'trunk', and released to 'tags'. My projects then pull against the 'tag' using svn:externals.

In this way, I can track the changes that happen from the vendor and even accept or deny some changes if I need to. For example, Qt has a niced add-on for supporting services/daemons - the Qt Service Class (http://doc.trolltech.com/solutions/qtservice/qtservice.html). However, their releases of it are targeted either at Windows OR Unix/Linux/Mac, but I need to support both; so using this method I merge them both together and use the merged result in my source.

Personally, I think this helps as it is basically treating the vendor as another project in the repository. Of course, each of my projects have their own trunk/branches/tags, so this might not work for you if you're not doing that too...but you could probably find similar way.


Received on 2010-02-27 18:57:31 CET

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.