Merging new XtraDB releases

You are viewing an old version of this article. View the current version here.

Background

Percona used to maintains XtraDB as a patch series against the InnoDB plugin. This affected how we started merging XtraDB in.

Now Percona maintains a normal source repository on launchpad (lp:percona-server). But we continue to merge the old way to preserve the history of our changes.

Merging

There used to be a lp:percona-xtradb tree, that we were merging from as:

bzr merge lp:percona-xtradb

Now we have to maintain our own XtraDB-only repository to merge from. It is lp:~maria-captains/maria/xtradb-mergetree-5.5. To merge new XtraDB version into MariaDB proceed as follows:

  1. branch lp:~maria-captains/maria/xtradb-mergetree-5.5
  2. download the latest Percona-Server release source tarball from http://www.percona.com/downloads/
  3. delete all files in your branched xtradb-mergetree-5.5 directory
  4. put there the contents of the storage/innobase directory inside the Percona-Server sources
  5. add new files with bzr add, commit (use the Percona-Server source tarball name as a changeset comment), push. Do not change XtraDB sources in any way!
  6. Now, in MariaDB-5.5 repository you can merge from lp:~maria-captains/maria/xtradb-mergetree-5.5

Due to the way that various files have been replaced or moved about between XtraDB and MariaDB, this will often result in a number of conflicts that need to be resolved manually.

While the number of conflicts that bzr gives when merging is annoying, it is important that we actually get these conflicts. This prevents important changes from getting lost accidentally. So resist the temptation to leave unused files hanging about to avoid future conflicts; it will cause more problems than it solves. Of course, conflicts that can be arranged to be handled automatically without manual intervention is good, and eg. renaming new files into the proper place to achieve this is appropriate.

With respect to the test suite, XtraDB is updated with result files etc. to match a given release of MySQL. So it is often very beneficial (in terms of time saved debugging test failures) to coordinate merge of XtraDB with the merge of the associated MySQL version.

Update XtraDB version

When merging, the XtraDB version should be set correctly in the file storage/xtradb/include/univ.i — Percona developers very often forget to update it.

#ifndef PERCONA_INNODB_VERSION
#define PERCONA_INNODB_VERSION 31.1
#endif

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.