Updating my local boost.

I guess this question is more appropriate to the Subversion maillist, but I'm not subscribed to that, so it might take upto 24 hours to appear there. I'm hoping someone here will know the answer! My organisation maintains its boost libraries under its own Subversion repository. This strikes me as a bit odd, but no reason really why not AFAICS. However, the version in our repository is 1.33.1, and I'd like to upgrade to latest 1.36 release. Our network prevents me accessing the Boost subversion repository, so I have to download the tarball and unpack. Then what do I do? I basically want to overwrite our existing boost code with the newer code, but maintain our local edit history so we can see what's changed locally between our old boost code and new. Hence there are lots of additions, changes and deletions, all of which I want to be able see (that's see the differences between our old code and new code, not all the individual boost commits). How can I do this? Thanks - Rob.

On Fri, Sep 19, 2008 at 4:25 AM, Robert Jones
My organisation maintains its boost libraries under its own Subversion repository. This strikes me as a bit odd, but no reason really why not AFAICS.
Not really all that odd IMO. :-)
However, the version in our repository is 1.33.1, and I'd like to upgrade to latest 1.36 release. Our network prevents me accessing the Boost subversion repository, so I have to download the tarball and unpack.
Then what do I do?
I do this periodically at work with our repository of external packages. Basically I do something like the following: 1. Generate a diff between the old and new version, and capture the output. 2. Use the output to generate a script that will 'svn rm' any files that are in the old version, but not the new version. 3. Copy the new version in place of the old version, overwriting any files that already exist. 4. 'svn add' anything that isn't under version control. You can get a list by executing the following command: svn status | grep ^? | cut -c8- 5. Commit the entire change set. It usually takes more time to commit the changes than to make them. ;-) Perhaps there are better ways, for which I am all ears. Jon

AMDG Robert Jones wrote:
Then what do I do? I basically want to overwrite our existing boost code with the newer code, but maintain our local edit history so we can see what's changed locally between our old boost code and new. Hence there are lots of additions, changes and deletions, all of which I want to be able see (that's see the differences between our old code and new code, not all the individual boost commits). How can I do this?
I don't know whether this is the best way to achieve this but you can import the new version of boost into a separate branch and then merge with --ignore-ancestry In Christ, Steven Watanabe

On Fri, Sep 19, 2008 at 9:38 AM, Steven Watanabe
I don't know whether this is the best way to achieve this but you can import the new version of boost into a separate branch and then merge with --ignore-ancestry
Does this work w/ svn v1.5? If you add the new version at rev X, then I *think* 1.4.x will complain about no repo location existing for the merge source at revision X-1. Jon

Rob, On Friday 19 September 2008 03:25:54 Robert Jones wrote:
Then what do I do? I basically want to overwrite our existing boost code with the newer code, but maintain our local edit history so we can see what's changed locally between our old boost code and new. Hence there are lots of additions, changes and deletions, all of which I want to be able see (that's see the differences between our old code and new code, not all the individual boost commits). How can I do this?
I like to keep the third party libraries in their own versioned directories. For instance, I would put Boost 1.33.1 in a directory named boost_1_33_1, and I would use boost_1_36_0 for Boost 1.36.0. It should mostly be a simple change in your build system in order to switch from the boost_1_33_1 to the boost_1_36_0 directory. Additionally, this approach allows you to keep both versions of boost in your repository until you are confident that it is time to deprecate the older version. I personally only cared to track changes between the Boost official release and the version in the repository. If you *really* want to track changes between two different modified Boost versions in your repository (there will be a TON of changes between 1.33.1 and 1.36.0), then you could use "svn cp" to copy the entire boost_1_33_1 tree to boost_1_36_0 and then merge the latest Boost 1.36.0 in. "svn cp" keeps the history. Of course, if you are not using Subversion, "svn cp" is useless. CVS does not have an option to keep the history during a copy. Hope This Helps, Justin

Probably way too late to help the OP, sorry... Robert Jones wrote:
I guess this question is more appropriate to the Subversion maillist,
um, yeah.
My organisation maintains its boost libraries under its own Subversion repository.
I basically want to overwrite our existing boost code with the newer code, but maintain our local edit history so we can see what's changed locally between our old boost code and new.
I'm a little surprised that no one mentioned the official Subversion recommendation for exactly this scenario: http://svnbook.red-bean.com/en/1.1/ch07s05.html That's how we track locally-modified third-party libraries.
participants (5)
-
Jonathan Franklin
-
KSpam
-
Nat Goodspeed
-
Robert Jones
-
Steven Watanabe