Boost logo

Boost :

Subject: Re: [boost] As a side note about source control
From: Vladimir Prus (vladimir_at_[hidden])
Date: 2010-09-01 03:09:28


Eric Hopper wrote:

> If I simply check out one of the tags for a version of Boost I have, I
> can certainly make my changes there, but I can never check them in or
> effectively track them against Boost itself as it moves forward. I
> could check out trunk, but trunk does not correspond to any version of
> Boost installed on my system and means I would be testing all kinds of
> changes that may or may not be ready for use. I'm not interested in
> being a Boost tester. And again, I really couldn't check my changes in
> or effectively integrate them with later versions of Boost.

I am not sure what kind of problems you are having. Here's a canonical
way to do this:

1. Grab Boost 1.44 (using a corresponding tag). "svn export" is OK.
2. Import it into your local SVN repository, at ^/vendor/boost
3. Create a local copy, at ^/trunk/boost
4. Make changes as you like.

Then, when 1.45 comes out, you do this:
1. Grab Boost 1.45
2. Import it, again to ^/vendor/boost
3. Merge from ^/vendor/boost to ^/trunk/boost

SVN has a script to do imports of external source base. Have you
tried this procedure?

In fact, even if you prefer working with the other version control system,
it's pretty easy to handle Boost:

1. Use git svn to mirror ^/branches/release
2. Create a branch, hack away

For each next release:
1. Use git svn to mirror all revisions on ^/branches/release for the next release
2. Use git rebase to reapply your changes.

This is totally straight-forward. I am sure that Mercurial must have
something similar?

- Volodya


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk