For an easy reproduction case of something that should have been a trivial merge
bzr branch -r tag:mysql-5.1.47 <path to 5.1 branch> 5147local
bzr branch -r 3365 5147local repro
cd repro
vi storage/innodb_plugin/data/data0data.c --> add one line of text,
storage/innodb_plugin/data0data.c was deleted & added by r3366
bzr commit
bzr merge -v -r 3366 ../5147 >& /tmp/r3366 &
interesting lines from the output of 'bzr merge'
+N storage/innodb_plugin/data/data0data.c
RM storage/innodb_plugin/data/data0data.c =>
storage/innodb_plugin.moved/data/data0data.c.THIS
Conflict: can't delete storage/innodb_plugin.moved because it is not
empty. Not deleting.
Conflict adding file storage/innodb_plugin. Moved existing file to
storage/innodb_plugin.moved.
Conflict because storage/innodb_plugin.moved is not versioned, but has
versioned children. Versioned directory.
Conflict: can't delete storage/innodb_plugin.moved/data because it is
not empty. Not deleting.
Conflict because storage/innodb_plugin.moved/data is not versioned,
but has versioned children. Versioned directory.
Contents conflict in storage/innodb_plugin.moved/data/data0data.c
On Fri, Jun 18, 2010 at 1:25 PM, MARK CALLAGHAN <mdcallag@stripped> wrote:
> I publish changes from a local MySQL branch at
> http://launchpad.net/mysqlatfacebook/51
>
>
> I need to merge changes from mysql 5.1.47 and use a command like:
> bzr merge -v -r tag:mysql-5.1.47 /s/bzr/mysql/5.1
>
> In this case /s/bzr/mysql/5.1 has
> bzr+ssh://bazaar.launchpad.net/~mysql/mysql-server/mysql-5.1
>
>
>
> I have merged without problems to r3365
> bzr merge -v -r 3365 /s/bzr/mysql/5147
>
> In this case /s/bzr/mysql/5147 has bzr branch -r tag:mysql-5.1.47
> /s/bzr/mysql/5.1 5147
>
> Things go bad at r3366
> bzr merge -v -r 3365 /s/bzr/mysql/5147
>
> I get lots of conflicts like this:
> Text conflict in sql/slave.cc
> Conflict: can't delete storage/innodb_plugin.moved because it is not
> empty. Not deleting.
> Conflict adding file storage/innodb_plugin. Moved existing file to
> storage/innodb_plugin.moved.
> Conflict because storage/innodb_plugin.moved is not versioned, but has
> versioned children. Versioned directory.
> Conflict: can't delete storage/innodb_plugin.moved/btr because it is
> not empty. Not deleting.
> Conflict because storage/innodb_plugin.moved/btr is not versioned, but
> has versioned children. Versioned directory.
> Contents conflict in storage/innodb_plugin.moved/btr/btr0btr.c
> Contents conflict in storage/innodb_plugin.moved/btr/btr0cur.c
> Contents conflict in storage/innodb_plugin.moved/btr/btr0pcur.c
> Contents conflict in storage/innodb_plugin.moved/btr/btr0sea.c
>
> And I can see things like this from the command output. I don't
> understand why a directory would have a change -- but I am not skilled
> with bzr
> +N mysql-test/suite/innodb_plugin/
>
> The contents of r3366 might be interesting. It looks like
> storage/innodb_plugin was recursively deleted and then added by this
> change.
> Why was that done?
> Does that mean that people like me who maintain our own trees and want
> to merge now have a lot more work to do?
>
> I merged to 5.1.46 a few months back without any problems like this.
>
> ------------------------------------------------------------
> revno: 3366 [merge]
> committer: Kristofer Pettersson <kristofer.pettersson@stripped>
> branch nick: mysql-5.1-bugteam
> timestamp: Mon 2010-05-03 19:21:09 +0200
> message:
> Automerge
> removed:
> ...
> storage/innodb_plugin/
> storage/innodb_plugin/CMakeLists.txt
> storage/innodb_plugin/COPYING
> storage/innodb_plugin/COPYING.Google
> storage/innodb_plugin/COPYING.Percona
> storage/innodb_plugin/COPYING.Sun_Microsystems
> added:
> ...
> storage/innodb_plugin/
> storage/innodb_plugin/CMakeLists.txt
> storage/innodb_plugin/COPYING
> storage/innodb_plugin/COPYING.Google
> storage/innodb_plugin/COPYING.Percona
> storage/innodb_plugin/COPYING.Sun_Microsystems
> storage/innodb_plugin/ChangeLog
> storage/innodb_plugin/Doxyfile
>
>
>
> --
> Mark Callaghan
> mdcallag@stripped
>
--
Mark Callaghan
mdcallag@stripped