Comment 7 for bug 494269

Revision history for this message
John A Meinel (jameinel) wrote : Re: conflict on deleted directory?

> You can do the steps yourself with (starting in the Ubuntu branch):
>
> bzr push ../upstream -r tag:upstream-2.6.22
> cd ../upstream
> bzr merge lp:debian/smarty -r tag:upstream-2.6.26
> bzr revert -r branch:lp:debian/smarty
> bzr ci -m "merge upstreams"
> cd ../smarty
> bzr merge ../upstream

If I do this manually, I get a failure at the line:
  bzr revert -r branch:lp:debian/smarty

Specifically, I get a huge traceback ending in:
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\transform.py", line 170, in adjust_path
    raise ValueError("Cannot have multiple roots.")
ValueError: Cannot have multiple roots.

Though I'm doing it in a treeless repository where I use "bzr co" after "cd ../upstream".

If I change it to use trees in the repo, and start in a checkout of 'ubuntu', then the push gives me the very surprising:

$ bzr push ../upstream -r tag:upstream-2.6.22
Path conflict: misc / misc
Path conflict: unit_test / unit_test
2 conflicts encountered.
Created new branch.

Even doing

$ rm -rf ../upstream; bzr push -r tag:upstream-2.6.22 ../upstream
Path conflict: misc / misc
Path conflict: unit_test / unit_test
2 conflicts encountered.
Created new branch.

I don't understand how 'push' creating a new working tree can have this problem. Perhaps it has something to do with not creating the working tree under the right version? (Or it creates it as an exact clone of the 'ubuntu' tree, and then tries to revert it to the tagged revision, etc.)

Anyway, definitely some strage mojo happening. I'll try to investigate further.