On May 13, 2009, at 10:37 AM, Kristian Nielsen wrote:
Kristian Nielsen <knielsen@knielsen-hq.org> 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.
Great! 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
lp:~knielsen/maria/mariadb-5.1-pbxt-merge-take2
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@primebase.org-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@primebase.org-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 www.primebase.org www.blobstreaming.org pbxt.blogspot.com