As I understand the "Vendor Branches" - they requires to merge changes
to all projects, that uses this libraries, if any changes occurs.
The Idea is to use one trunk version (without any customization) of
library for number of projects. Any changes made from one project to
this library appears in all other projects. E.g. for driver it can be
DMA Engine implementation. They are similar for all cards, there is no
difference here, so if we find bug in one driver, we should fix it in
all other drivers. In case of svn:external it would be done
automatically. But if we made a tag - leave tagged version of project
with version of sub-project, that was in use during tagging
operation.
2008/11/15 Bob Archer <Bob.Archer_at_amsi.com>:
> What we do here is treat that stuff the same way we treat third party
> tools. We have a "lib" folder in our project structure and we put the
> binaries there. Then our project references the DLL in the lib folder.
> This way, we can control what version of the external binary is used for
> each project. Yes, that means duplicate copies... but we find it much
> easier to version this way.
>
> If you prefer to use externals you could create a folder for each
> version. Then, change your reference path accordingly. This way you only
> have one copy of each binary in the repo even if it is used by multiple
> projects.
>
> If you are customizing your common stuff though for each project you
> will need to bring the source in. Look at the "Vendor Branches" section
> of the svn book. http://svnbook.red-bean.com/en/1.1/ch07s05.html This
> may be an approach that you can take.
>
> BOb
>
>
> -----Original Message-----
> From: Cyril Margorin [mailto:comargo_at_gmail.com]
> Sent: Friday, November 14, 2008 5:21 PM
> To: users_at_subversion.tigris.org
> Subject: Sharing of sub-projects and tagging
>
> Hello,
>
> Our company starts migrating from <censored> VSS to SVN so I'm new to
> SVN and even has not much experience with CVS.
> I'm trying to find a way, to share the sub-projects, that are common
> for our some of our projects (like a custom user controls, or helper
> classes for multi-threaded operations, or custom build tools).
>
> I've found that property svn:externals work fine for me, until I start
> tagging of project.
> As I see, if I tag the project, the svn:externals for tagged version
> of project still points to HEAD version of shared sub-project, and any
> changes in sub-project, made after tagging will be reflected in frozen
> (tagged) copy. So I have to manually change the svn:externals property
> to pin current REV of sub-project. Do it manually is not good idea
> (who wants to do something manually if you have a computer? :) )
>
> From other side, branching the sub-project to number of projects will
> require programmer to
> 1) make changes in main trunk, that is somewhere else, but not in this
> project,
> 2) merge changes to all project that uses this sub-project.
> - So it is another problem, that programmer should handle manually.
>
> I prefer the first way, but, as I see, I need to put a hook-script,
> that will be called on any copy command, and change the svn:externals
> property to current revision.
>
> The quiestions are:
> Is this problem already solved/described somewhere?
> Could someone point me to solution (script) that does it?
>
> Thanks.
> --
> Cyril Margorin
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
> For additional commands, e-mail: users-help_at_subversion.tigris.org
>
>
--
Cyril Margorin
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-11-15 00:17:45 CET