Failing to bzr resolve multiple conflicts bzr: ERROR: Tree transform is malformed [('duplicate id', 'new-74', 'new-1')]
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Vincent Ladeuil |
Bug Description
When trying to merge between lp:nux (rev 151) and lp:~unity-team/nux/packaging (rev 141), I get a lot of conflicts.
To resolve that, I wanted to:
bzr resolve --take-other
bzr: ERROR: Tree transform is malformed [('duplicate id', 'new-74', 'new-1')]
getting that with bzr version in natty (2.3b3) and trunk:
$ ./bzr --version
Bazaar (bzr) 2.3.0dev5
from bzr checkout /home/didrocks/
revision: 5563
revid: <email address hidden>
branch nick: bzr
Python interpreter: /usr/bin/python 2.6.6
Python standard library: /usr/lib/python2.6
Platform: Linux-2.
bzrlib: /home/didrocks/
Bazaar configuration: /home/didrocks/
Bazaar log file: /home/didrocks/
Related branches
- Jelmer Vernooij (community): Approve
-
Diff: 162 lines (+45/-15)5 files modifiedbzrlib/conflicts.py (+3/-4)
bzrlib/merge.py (+14/-2)
bzrlib/tests/test_conflicts.py (+15/-0)
bzrlib/transform.py (+9/-9)
doc/en/release-notes/bzr-2.4.txt (+4/-0)
description: | updated |
Changed in bzr: | |
status: | New → Confirmed |
importance: | Undecided → High |
assignee: | nobody → Vincent Ladeuil (vila) |
summary: |
- bzr: ERROR: Tree transform is malformed [('duplicate id', 'new-74', - 'new-1')] + Failing to bzr resolve multiple conflicts bzr: ERROR: Tree transform is + malformed [('duplicate id', 'new-74', 'new-1')] |
Changed in bzr: | |
status: | Confirmed → In Progress |
Changed in bzr: | |
milestone: | none → 2.4b5 |
status: | In Progress → Fix Released |
There are multiple bugs here:
- bzr resolve tries to work on multiple conflicts involving the same file with catastrophic results,
- --take-other wasn't the real intent here [1],
- while investigating I encountered several tracebacks even when trying to resolve a single conflict (I'll file specific bugs for that).
[1] Many conflicts occurred because some files were deleted in the packaging branch for various (valid) reasons but modified in the trunk. All of them, in this case, need to be resolved with --take-this (i.e. keep the file deleted, ignore the modifications).
This means that the blank 'bzr resolve --take-xxx' is too broad and bzr probably needs to provides a way to set the resolve action at the file or directory level so that 'bzr resolve --auto' can respect these settings.