Archived copy of A Swedish wolf in Norway

Miscellaneous technobabble from a Swede in Norway.

Working with version control

Published: 2005-05-27 21:05:39

When working on several different code branches, variations of the same code, on occasion you will need to merge changes done on one of the branches over to other branches. Usually this is to merge bug fixes that went in to your stable branch over to your development branch.

At Opera we work on several different versions simultaneously--for quite a while after Opera 7 was released for the desktop platforms (Windows, Mac, Linux), we released Opera 6-based versions for embedded platforms (Symbian, etc.). While a lot of code does change in-between the releases, many of the parts of the code only get smaller changes, mostly bug fixes. In these cases you can actually let the merge tool for your version control system to handle the patching for you, and it will often get it right.

Sometimes, the changes are bigger, and you have to do them by hand, which can take quite some time as you need to figure out which changes are the ones should be copied over, which ones have changed in a different way on the development branch and should not be carried over, and what just needs to be adapted for the new system. Combine this with the fact that we support several platforms and compilers, this takes a while.

Some of the changes are not carried forward, for example the rendering engine of Opera 7/8 is rewritten compared to the one in Opera 6, so bug fixes to Opera 6 will not make it to Opera 7/8 (we do try to make sure Opera 7/8 still shows whatever the bug was about correctly, of course). Likewise for Opera 7 to 8, and 8 to 8+1, in other parts of the codebase.

We do seem to learn from our mistakes for each merge, which makes the next one go slightly smoother. Hopefully that means that the next one will not take quite as long time as the last one I was involved with...

peter@softwolves.pp.se

This was originally posted on My Opera at http://my.opera.com/nafmo/blog/show.dml/14326
Please note that links may be outdated and any information included here may be obsolete.

← Opera 8.01 preview 1 - på svenska | opera6.ini documentation updated → | Back to the post index | Back to the archive index | Peter's homepage