pull tracebacks on a lighweight checkout of bzr:// or bzr+ssh:// branch
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Unassigned |
Bug Description
gjc@dark-
bzr: ERROR: exceptions.
Traceback (most recent call last):
File "/usr/lib/
return run_bzr(argv)
File "/usr/lib/
ret = run(*run_argv)
File "/usr/lib/
return self.run(
File "/usr/lib/
result.
AttributeError: 'NoneType' object has no attribute 'report'
bzr 1.5 on python 2.5.2 (linux2)
arguments: ['/usr/bin/bzr', 'pull', '-rrevno:429', 'lp:pybindgen']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8'
plugins:
builddeb /usr/lib/
bzrtools /usr/lib/
email /usr/lib/
gnulog /home/gjc/
gtk /usr/lib/
launchpad /usr/lib/
pqm /usr/lib/
rebase /usr/lib/
*** 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.
If I do the same on a full branch, it works:
gjc@dark-
No revisions to pull.
Only in lighweight checkouts is this failing.
Changed in bzr: | |
status: | Fix Committed → Fix Released |
Something does seem funny here. Specifically, I see:
if tree_to is not None: ChangeReporter(
unversioned_ filter= tree_to. is_ignored) pull(branch_ from, overwrite, revision_id,
change_ reporter,
possible_ transports= possible_ transports)
change_reporter = delta._
result = tree_to.
And in WT.pull I see: pull(source, overwrite, stop_revision,
possible_ transports= possible_ transports)
count = self.branch.
...
return count
So the variable shouldn't be "count" but it should still be a result object.
Actually, I found it. The problem is that RemoteBranch.pull doesn't return the Result object:
def pull(self, source, overwrite=False, stop_revision=None, hook_target branch, _ensure_ real() _real_branch. pull( overwrite, stop_revision= stop_revision,
**kwargs):
# FIXME: This asks the real branch to run the hooks, which means
# they're called with the wrong target branch parameter.
# The test suite specifically allows this at present but it should be
# fixed. It should get a _override_
# as push does. -- mbp 20070405
self.
self.
source, overwrite=
**kwargs)
The fix is trivial: hook_target branch,
self. _ensure_ real() branch. pull( branch. pull(
source, overwrite= overwrite, stop_revision= stop_revision,
* *kwargs)
=== modified file 'bzrlib/remote.py'
--- bzrlib/remote.py 2008-06-04 07:29:35 +0000
+++ bzrlib/remote.py 2008-06-07 18:51:19 +0000
@@ -1516,7 +1516,7 @@
# fixed. It should get a _override_
# as push does. -- mbp 20070405
- self._real_
+ return self._real_