Comment 17 for bug 40412

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 40412] Re: show-base for weave merge

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

GuilhemBichot wrote:
> Get https://code.launchpad.net/~mysql/mysql-server/mysql-6.0-codebase-bugfixing, make two branches of it:
> A at revid:<email address hidden>
> B at revid:<email address hidden>
> then do
> cd B
> yourbzr merge --weave ../A
> Then notice that mysql-test/r/slave_allow_batching_basic.result and mysql-test/t/slave_allow_batching_basic.test are in "bzr conflicts --text" but have no BASE file.
> I checked that I used your branch.
>

Thanks. Something weird is definitely happening here.

Specifically, if I do "bzr remerge --weave
mysql-test/t/slave_allow_batching_basic.test" and trap based on that
file-id, I can see that the contents is being marked as conflicted, but
it is failing to dump the contents.

Stepping through line-by-line, it seems that this line is at fault:

        for suffix, tree, lines in data:
            if file_id in tree:
                trans_id = self._conflict_file(name, parent_id, tree,
file_id,
                                               suffix, lines,
filter_tree_path)

Basically, for each of OTHER, THIS, and BASE, it checks to see if the
file is present in that revision, and if not it doesn't dump the text.

However base_tree in this case is the one before all of the criss-cross
merges, so it is probably quite old. And we have base-lines even though
the file didn't exist in that base_tree.

I'll try something, but I'm not as sure about what it would do. Namely,
change the 'if' line to:

if file_id in tree or lines is not None:

It turns out that this fails. I'm not positive, but I think it tries to
do something like get the 'executable' bit from the given tree. And
since the content doesn't exist in that tree, it fails...

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAksdxgEACgkQJdeBCYSNAANhcACgl6OC/edbVHoPw99taAi1YOZJ
eQ0AoMEG7+u0McJ4gv7D+XRpniTDUDo0
=KCvl
-----END PGP SIGNATURE-----