packs regression: 'bzr pull ../other'

John Arbash Meinel john at arbash-meinel.com
Fri Nov 30 01:49:39 GMT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I just wanted to spawn off a workingtree-less branch so I did:

bzr init x
cd x
bzr remove-tree
bzr pull ../bzr.dev

And it spent a *lot* of time. It is because of a "get_revision_graph()" call
(which is another O(history) call), because for some reason it is calling
Branch.set_revision_history().

  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1489)pull()
- -> self.update_revisions(source, stop_revision)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/decorators.py(165)write_locked()
- -> return unbound(self, *args, **kwargs)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1463)update_revisions()
- -> other_branch=other)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/decorators.py(165)write_locked()
- -> return unbound(self, *args, **kwargs)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1439)generate_revision_history()
- -> last_rev, other_branch))
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/decorators.py(165)write_locked()
- -> return unbound(self, *args, **kwargs)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1376)set_revision_history()
- -> self._write_revision_history(rev_history)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1970)_write_revision_history()
- -> if history != self._lefthand_history(history[-1]):
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/branch.py(1409)_lefthand_history()
- -> stop_graph = self.repository.get_revision_graph(revision_id)
  /Users/jameinel/dev/bzr/bzr.dev/bzrlib/decorators.py(127)read_locked()
- -> return unbound(self, *args, **kwargs)

/Users/jameinel/dev/bzr/bzr.dev/bzrlib/repofmt/knitrepo.py(201)get_revision_graph()
- -> return a_weave.get_graph([revision_id])

I'm not sure why Branch.pull is calling set_revision_history() rather than
calling Branch.set_last_revision_info().

This is a Branch6 branch, so it doesn't need to iterate the entire history,
unless it is verifying that the revision number is correct.

By the way Martin, thank you so very, very much for the SIGQUIT handler.

John
=:->

  affects bzr
  status triaged
  importance medium
  tags packs performance
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHT2wyJdeBCYSNAAMRAqpvAJ9X5/HhxYQJsbDAo38OgB/x/DWMGgCfbuJH
If+vaOjr2T1t+M1RykC7Z80=
=93xf
-----END PGP SIGNATURE-----



More information about the bazaar mailing list