Rev 1855: Avoid using find_latest_change in file:///data/jelmer/bzr-svn/trunk/
Jelmer Vernooij
jelmer at samba.org
Sun Sep 7 23:38:05 BST 2008
At file:///data/jelmer/bzr-svn/trunk/
------------------------------------------------------------
revno: 1855
revision-id: jelmer at samba.org-20080907223804-zd11jwwxqqevy8in
parent: jelmer at samba.org-20080907221506-bqm9jt9cmqaq3awb
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Mon 2008-09-08 00:38:04 +0200
message:
Avoid using find_latest_change
modified:
branch.py svnbranch.py-20051017135706-11c749eb0dab04a7
=== modified file 'branch.py'
--- a/branch.py 2008-09-07 22:15:06 +0000
+++ b/branch.py 2008-09-07 22:38:04 +0000
@@ -64,7 +64,7 @@
assert isinstance(self._branch_path, str)
if not _skip_check:
try:
- revnum = self.get_revnum()
+ revnum = self.repository.get_latest_revnum()
if self.repository.transport.check_path(self._branch_path,
revnum) != core.NODE_DIR:
raise NotBranchError(self.base)
@@ -107,12 +107,13 @@
if revnum is None:
return self._branch_path
- if revnum == self.get_revnum():
- return self._branch_path
+ last_revmeta = self.last_revmeta()
+ if revnum == last_revmeta.revnum:
+ return last_revmeta.branch_path
# Use revnum - this branch may have been moved in the past
return self.repository.transport.get_locations(
- self._branch_path, self.get_revnum(),
+ last_revmeta.branch_path, last_revmeta.revnum,
[revnum])[revnum].strip("/")
def get_revnum(self):
@@ -121,14 +122,10 @@
:return: Revision number
"""
- if self._lock_mode == 'r' and self._cached_revnum:
- return self._cached_revnum
- latest_revnum = self.repository.get_latest_revnum()
- self._cached_revnum = self.repository._log.find_latest_change(
- self.get_branch_path(), latest_revnum)
- if self._cached_revnum is None:
- raise NotBranchError(self.base)
- return self._cached_revnum
+ return self.last_revmeta().revnum
+
+ def last_revmeta(self):
+ return self._revision_meta_history()[0]
def check(self):
"""See Branch.Check.
@@ -315,7 +312,7 @@
if self._revmeta_cache is None:
pb = ui.ui_factory.nested_progress_bar()
try:
- self._revmeta_cache = [revmeta for revmeta in self.repository._revmeta_provider.get_mainline(self.get_branch_path(), self.get_revnum(), self.mapping, pb=pb) if not revmeta.is_hidden(self.mapping)]
+ self._revmeta_cache = [revmeta for revmeta in self.repository._revmeta_provider.get_mainline(self.get_branch_path(), self.repository.get_latest_revnum(), self.mapping, pb=pb) if not revmeta.is_hidden(self.mapping)]
finally:
pb.finished()
return self._revmeta_cache
@@ -323,13 +320,7 @@
def _gen_revision_history(self):
"""Generate the revision history from last revision
"""
- pb = ui.ui_factory.nested_progress_bar()
- try:
- history = []
- for revmeta in self._revision_meta_history():
- history.append(revmeta.get_revision_id(self.mapping))
- finally:
- pb.finished()
+ history = [revmeta.get_revision_id(self.mapping) for revmeta in self._revision_meta_history()]
history.reverse()
return history
@@ -337,7 +328,7 @@
"""See Branch.last_revision()."""
# Shortcut for finding the tip. This avoids expensive generation time
# on large branches.
- return self.generate_revision_id(self.get_revnum())
+ return self.last_revmeta().get_revision_id(self.mapping)
@needs_write_lock
def dpull(self, source, stop_revision=None):
More information about the bazaar-commits
mailing list