← Back to team overview

maria-developers team mailing list archive

Re: MariaDB + PBXT


On May 13, 2009, at 10:37 AM, Kristian Nielsen wrote:

Kristian Nielsen <knielsen@xxxxxxxxxxxxxxx> writes:

One thing I might try is to re-do the merge in smaller steps. There is a _lot_ of add/move/delete/patch the same file in the same changeset, and it is clear that it is very hard to get all the special cases of this right in the bzr code (I would personally lean towards not allowing a single file to be both
added, deleted, moved, and/or patched in the same commit).

So if I re-do the merge with seperate commits:

1. In pbxt repo, move needed files into pbxt-to-be-merged, delete rest.
 2. In MariaDB repo, delete PBXT files from the old merge.
 3. Pull renamed pbxt into mariadb without other changes.
 4. Move files in pbxt-to-be-merged into place
 5. Apply needed patches.

Then each individual step will be in a separate commit, which should make the
history hopefully more sane.

Ok, I tried this, and it did not make any difference, same problem.

After re-merging PBXT revision 608 (same as orginal merge), I tried to merge in just revision 609 from PBXT (from a `bzr branch -r609 pbxt` branch):

   $ bzr merge ../test-merge-source
   +N  mysql-test/suite/pbxt/r/type_varchar.result.OTHER
   +N  mysql-test/suite/pbxt/t/type_varchar.test.OTHER
    M  storage/pbxt/src/ha_pbxt.cc
   Contents conflict in mysql-test/suite/pbxt/r/type_varchar.result
   Contents conflict in mysql-test/suite/pbxt/t/type_varchar.test
/usr/lib/python2.5/site-packages/bzrlib/ui/__init__.py:91: UserWarning: ProgressTask(0/2, msg='Apply phase') is not the active task ProgressTask(None/None, msg='')
     % (task, self._task_stack[-1]))
/usr/lib/python2.5/site-packages/bzrlib/ui/__init__.py:91: UserWarning: ProgressTask(2/3, msg='Merge phase') is not the active task ProgressTask(None/None, msg='')
     % (task, self._task_stack[-1]))
   bzr: ERROR: No final name for trans_id 'new-1'
   file-id: None
   root trans-id: 'new-0'

So I think this means we will have to put applying Stewart's technique to the
PBXT merge on hold :-(.

Yes, unfortunately we cannot proceed with this problem. :(

I must say I find it strange that bzr is merging files with .OTHER and .BASE endings, because these are temp files which only occur after a merge conflict.

I will report this bug to bzr along with steps to reproduce.

Also, I will try if some of our people with contacts to the bzr developers can
get them to look into this.


I see https://bugs.launchpad.net/bzr/+bug/364305 has just been assigned to Aaron.

In case of interest, below are the steps I used for the new merge (which I like much better than the previous even if it did not solve the problem, as there were no merge conflicts at all to be solved and it just seems much
cleaner). Also pushed as


Looks good to me, but it may be that the bzr developers can just give us a hint how to do this in order to avoid the error.

- Kristian.

 mkdir pbxt-new-merge-take2
 cd pbxt-new-merge-take2/
bzr branch -r'revid:paul.mccullagh@xxxxxxxxxxxxx-20090402202852-wa2fbcmrdy7gda2f ' lp:pbxt pbxt-rename
 cd pbxt-rename/
 bzr co
 bzr mkdir pbxt-to-be-renamed
bzr rm aclocal.m4 config config.h.in configure configure-dzl.in configure.in COPYING Makefile-dzl.am Makefile.in plug-dzl.in bin src/Makefile-dzl.am src/Makefile.in
 (cd test/mysql-test/t && bzr rm --force <lots of files>)
 (cd test/mysql-test/r && bzr rm --force <lots of files>)
 bzr mv test/mysql-test/t pbxt-to-be-renamed/
 bzr mv test/mysql-test/r pbxt-to-be-renamed/
 bzr rm test
bzr mv AUTHORS INSTALL NEWS plug.in src ChangeLog Makefile.am README TODO pbxt-to-be-renamed/ bzr commit -m$'Prepare for merging PBXT into MariaDB tree:\n - Delete not needed files.\n - Move needed files into subdirectory to avoid conflicts.'
 cd ..
bzr branch -r'revid:paul.mccullagh@xxxxxxxxxxxxx-20090407105746-tolv5dita1d3eavm ' lp:maria mariadb-pbxt-merge
 cd mariadb-pbxt-merge/
 bzr co
 bzr rm storage/pbxt mysql-test/suite/pbxt/{t,r}
bzr commit -m"Delete old PBXT files in preparation for re-merging PBXT with proper history and merge tracking."
 bzr merge ../pbxt-rename -r0..-1
bzr ci -m"Re-merge PBXT with proper history and merge tracking, into temporary directory for later renaming into place."
 bzr mv pbxt-to-be-renamed/{t,r} mysql-test/suite/pbxt/
 bzr mkdir storage/pbxt/
 bzr mv pbxt-to-be-renamed/* storage/pbxt/
 bzr rm pbxt-to-be-renamed/
bzr ci -m"Re-merge PBXT into MariaDB with proper history and merge tracking: move files into correct place."
 patch -p0 -s < /tmp/1
 (cd mysql-test/suite/pbxt/ && patch -p0 -s < /tmp/2)
 (cd mysql-test/suite/pbxt/ && patch -p0 -s < /tmp/3)
bzr ci -m"After-merge fixes for re-merge of PBXT into MariaDB with proper history and merge tracking."

Paul McCullagh
PrimeBase Technologies

Follow ups