← Back to team overview

maria-developers team mailing list archive

Re: MariaDB + PBXT


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 :-(.

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.

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


 - 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." 

Follow ups