Merging from bzr branch gives AttributeError
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar Subversion Plugin |
Fix Released
|
Medium
|
Unassigned |
Bug Description
When merging back a bzr branch into a svn checkout, I got the following:
AttributeError: 'Revision' object has no attribute 'foreign_revid'
The following steps reproduce the error (spam is the non-public svn checkout; I renamed it in the bug report):
> bzr branch spam /tmp/test-zr
> cd /tmp/test-zr
> echo a >>_articleexpor
> bzr commit -m 'none'
> cd -
> cd spam
> bzr merge /tmp/test-zr
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/usr/lib64/
return the_callable(*args, **kwargs)
File "/usr/lib64/
ret = run(*run_argv)
File "/usr/lib64/
return self.run(
File "/usr/lib64/
return bzrlib.
File "/usr/lib64/
location, revision, remember, possible_
File "/usr/lib64/
other_
File "/usr/lib64/
merger.
File "/usr/lib64/
self.
File "/usr/lib64/
target.
File "/usr/lib64/
result = unbound(self, *args, **kwargs)
File "/usr/lib64/
pb=pb)
File "/usr/lib64/
find_
File "/home/
self.
File "/home/
self.
File "/home/
foreign_
AttributeError: 'Revision' object has no attribute 'foreign_revid'
bzr 1.17 on python 2.6.2 (linux2)
arguments: ['/usr/bin/bzr', 'merge', '/tmp/test-zr']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'de_DE.utf8'
plugins:
bzrtools /usr/lib64/
explorer /home/marc/
gtk /home/marc/
launchpad /usr/lib64/
netrc_
qbzr /usr/lib64/
svn /home/marc/
xmloutput /home/marc/
*** Bazaar has encountered an internal error.
Please report a bug at https:/
including this traceback, and a description of what you
were doing when the error occurred.
subvertpy 0.6.8
I have attached part of .bzr.log
Just for the case it's not clear from the log, type(rev) == <class 'bzrlib.
Related branches
Changed in bzr-svn: | |
status: | New → Triaged |
importance: | Undecided → Medium |
Changed in bzr-svn: | |
milestone: | none → 1.0.0 |
Changed in bzr-svn: | |
status: | Triaged → Fix Released |
The following patch seems to make merging work again. At least with the test case above.
--- push.py.orig 2009-08-27 09:27:06.000000000 +0200
base_ mapping = None
base_ foreign_ revid, base_mapping = self.target. lookup_ revision_ id(parent_ revid, sibling= rev.foreign_ revid) sibling= getattr( rev, 'foreign_revid', None)) parse(base_ foreign_ revid[1] ) branch_ path(rev, layout, target_project)
target_ config = self._get_ branch_ config( bp)
+++ push.py 2009-08-27 09:27:14.000000000 +0200
@@ -356,7 +356,7 @@
else:
- foreign_
+ foreign_
(_, target_project, _, _) = layout.
bp = determine_