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

Re: how do you do multiplatform vendor branches?

From: Max Bowsher <maxb_at_ukf.net>
Date: 2004-09-01 01:11:14 CEST

Kevin Brannen wrote:
> Max Bowsher wrote:
>> Kevin Brannen wrote:
>>
>>> We have a repository in CVS that I'm researching how to move to SVN.
>>> Much of it is straight-forward, lot's of java and 3rd party jars. An
>>> import and we're done.
>>>
>>> However, there is also a directly (a CVS module) that is collection of
>>> JVMs that we use for our code (different releases of our product use
>>> different JVMs). So far, not hard. Until we consider that we also
>>> support multiple platforms and that the JVMs are binary and platform
>>> specific. I can't figure out how to handle that in SVN.
>>>
> ...
>>> 2. Do I need to work outside of SVN like I do CVS and make it work with
>>> script stuff? For example, have a "post-checkout" type hook (or wrap
>>> checkout with a script) that creates a symlink at the proper place with
>>> the code checkout to another checkout (of another repository) that
>>> contains the JVMs? Meaning, I end up with N+1 repositories on the
>>> server, where N is the number of platforms I support, do the checkout of
>>> the proper JVM into /vendor/JDK, then do the checkout of our code, and
>>> finally in the dir of our code do "ln -s /vendor/JDK JDK".
>>> [Fortunately, we only have to support Unix machines in this, the
>>> msWindows machines only mount the code with Samba.]
>>
>>
>> You will need some sort of external script.
>>
>> The easiest way to do it might be to keep all the stuff in 1 repository,
>> have a placeholder empty dir in the common code tree, and "svn switch"
>> it to the appropriate platform directory.
>
> Thanks, I'll go read up on svn switch.
>
> You make it sound like all the platforms will be there in every working
> dir if we use "switch". If that's so, I really don't want to go there!
> That would cause each machine to have a several extra GBs of "data" it
> can't use; that penalty will not fly with others here. The external
> script is doable and no worse than we have now.

Depends how you structure your repository.
All you have to do is put the platform specific tree *not* nested within the
common tree in the repository. Then you use switch to switch in *just* the 1
platform you actually care about:

/common/trunk/foo/jvm <---empty dir
/platform/linux/jvm
/platform/win32/jvm

In a WC of /common/trunk/foo:
svn switch url://to/repository/platform/<my-plat>/jvm jvm

Max.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Sep 1 01:31:58 2004

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