You don't really want externals in this case. All you really want to
do is to copy (branch) the common code into the release. In fact, you
probably want to do this anyway, even on the trunk, and not use
externals at all. Externals have the 'advantage" of auto update
propogation, but as you discovered, this really isnt the advantage
that is appears.
So, just copy from Common into an appropriate location in Prod_A and
Prod_B. Then use the merging features of Subversion to perform
updates from Common into the products as and when desired.
--Tim
On Jan 8, 2007, at 1:52 AM, <stephen.3.odonnell@bt.com> <stephen.
3.odonnell@bt.com> wrote:
> Hi I am quite new to subversion and am trying out some things to
> get our project cleaned up a bit.
>
> If I have a repository structure like:
>
> Prod_a
>
> Prod_b
>
> Common
>
> Each of these directories contains a branch, tags and trunk sub-dir.
>
> I use the propset svn:externals command to link common into Prod_a
> and Prod_b and this works as I expected. Then I create a branch,
> and as expected I have to update my external link to point to the
> correct branch of common.
>
> When I want to make a release, I create a tag (with is basically
> another branch), however, when someone changes the common branch
> the tag is updated with the new common code, so I have lost my
> release snapshot. At first I was shocked, and then I realised this
> was clearly going to happen.
>
> So how am I supposed to create a TAG to snapshot my release in this
> situation? I had not intended to put any tags in the common code
> at all, as its never released outside of Prod_a or Prod_b. Do I
> have to change my svn:external link somehow, or is there a better
> way of doing what I want?
>
> Thanks,
>
> Stephen.
>
Received on Tue Jan 9 05:37:27 2007