Still present in 1.16. I now cannot merge any of my branches anymore meaning I effectively do not use bzr anymore.
I am trying to find out what goes wrong and will post progress here, I hope that gets some response from people that actually know how this stuff works.....
Background: I have a shared project repository (domUI) which is repeatedly merged into a master tree (vp-trunk). The first merge was done using a merge with full history of the domUI trunk. When I try to merge again we get this error. This is not a cherrypicking merge! The failing merge I am debugging has the following changes:
+N to.etc.webapp.core/src/to/etc/webapp/query/QRestrictionsBase.java
+N to.etc.webapp.core/src/to/etc/webapp/query/QSelectedItem.java
+N to.etc.webapp.core/src/to/etc/webapp/query/QSelection.java
M to.etc.domui.hibutil/src/to/etc/domui/hibernate/model/CriteriaCreatingVisitor.java
M to.etc.domui.pages/src/to/etc/domui/pages/generic/BasicListPage.java
M to.etc.domui/src/to/etc/domui/component/input/LookupInput.java
RM to.etc.domui/src/to/etc/domui/trouble/CodeException.java => to.etc.webapp.core/src/to/etc/webapp/nls/CodeException.java
M to.etc.webapp.core/src/to/etc/webapp/query/QCriteria.java
M to.etc.webapp.core/src/to/etc/webapp/query/QMultiNode.java
M to.etc.webapp.core/src/to/etc/webapp/query/QNodeVisitor.java
M to.etc.webapp.core/src/to/etc/webapp/query/QNodeVisitorBase.java
-D to.etc.webapp.core/src/to/etc/webapp/query/QProjection.java
M to.etc.webapp.core/src/to/etc/webapp/query/QRestriction.java
It looks like discovering changes goes OK since a merge --preview works properly.
So far I discovered the following by fuzzing around in transform.py:
The id "new-1" is assigned to "tree_root-20090331215929-42is8ly6zvj4rr4a-1" in "trans_id_file_id". This tree root name is the tree root in the domUI repository (i.e. the source of the merge).
The exception gets thrown in "final_name", because neither self._new_name nor self._tree_id_paths contains 'new-1' as a key. The values present in self._new_name are: {'new-16': 'QSelection.java', 'new-6': u'CodeException.java', 'new-15': 'QSelectedItem.java', 'new-13': 'QRestrictionsBase.java', 'new-2': '.bzrignore'}. The _tree_id_paths array contains some subset of files and directories?
Assigning the ID to the tree is done in merge.py, _compute_transform. The entry for the tree node reads:tree_root-20090331215929-42is8ly6zvj4rr4a-1 False (None, None, None) ('', '', None)
Still present in 1.16. I now cannot merge any of my branches anymore meaning I effectively do not use bzr anymore.
I am trying to find out what goes wrong and will post progress here, I hope that gets some response from people that actually know how this stuff works.....
Background: I have a shared project repository (domUI) which is repeatedly merged into a master tree (vp-trunk). The first merge was done using a merge with full history of the domUI trunk. When I try to merge again we get this error. This is not a cherrypicking merge! The failing merge I am debugging has the following changes:
+N to.etc. webapp. core/src/ to/etc/ webapp/ query/QRestrict ionsBase. java webapp. core/src/ to/etc/ webapp/ query/QSelected Item.java webapp. core/src/ to/etc/ webapp/ query/QSelectio n.java domui.hibutil/ src/to/ etc/domui/ hibernate/ model/CriteriaC reatingVisitor. java domui.pages/ src/to/ etc/domui/ pages/generic/ BasicListPage. java domui/src/ to/etc/ domui/component /input/ LookupInput. java domui/src/ to/etc/ domui/trouble/ CodeException. java => to.etc. webapp. core/src/ to/etc/ webapp/ nls/CodeExcepti on.java webapp. core/src/ to/etc/ webapp/ query/QCriteria .java webapp. core/src/ to/etc/ webapp/ query/QMultiNod e.java webapp. core/src/ to/etc/ webapp/ query/QNodeVisi tor.java webapp. core/src/ to/etc/ webapp/ query/QNodeVisi torBase. java webapp. core/src/ to/etc/ webapp/ query/QProjecti on.java webapp. core/src/ to/etc/ webapp/ query/QRestrict ion.java
+N to.etc.
+N to.etc.
M to.etc.
M to.etc.
M to.etc.
RM to.etc.
M to.etc.
M to.etc.
M to.etc.
M to.etc.
-D to.etc.
M to.etc.
It looks like discovering changes goes OK since a merge --preview works properly.
So far I discovered the following by fuzzing around in transform.py:
The id "new-1" is assigned to "tree_root- 20090331215929- 42is8ly6zvj4rr4 a-1" in "trans_id_file_id". This tree root name is the tree root in the domUI repository (i.e. the source of the merge).
The exception gets thrown in "final_name", because neither self._new_name nor self._tree_id_paths contains 'new-1' as a key. The values present in self._new_name are: {'new-16': 'QSelection.java', 'new-6': u'CodeException .java', 'new-15': 'QSelectedItem. java', 'new-13': 'QRestrictionsB ase.java' , 'new-2': '.bzrignore'}. The _tree_id_paths array contains some subset of files and directories?
Assigning the ID to the tree is done in merge.py, _compute_transform. The entry for the tree node reads:tree_ root-2009033121 5929-42is8ly6zv j4rr4a- 1 False (None, None, None) ('', '', None)