Rev 3304: Don't abstract through RevisionInfo for RevisionSpec_revno.as_revision_id() in http://bzr.arbash-meinel.com/branches/bzr/1.4-dev/get_rev_id
John Arbash Meinel
john at arbash-meinel.com
Thu Mar 20 22:33:05 GMT 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.4-dev/get_rev_id
------------------------------------------------------------
revno: 3304
revision-id: john at arbash-meinel.com-20080320223038-rv9bnn65p2co2j0u
parent: john at arbash-meinel.com-20080320221449-ng18p9ecynrau3es
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: get_rev_id
timestamp: Thu 2008-03-20 17:30:38 -0500
message:
Don't abstract through RevisionInfo for RevisionSpec_revno.as_revision_id()
modified:
bzrlib/revisionspec.py revisionspec.py-20050907152633-17567659fd5c0ddb
-------------- next part --------------
=== modified file 'bzrlib/revisionspec.py'
--- a/bzrlib/revisionspec.py 2008-03-20 22:14:49 +0000
+++ b/bzrlib/revisionspec.py 2008-03-20 22:30:38 +0000
@@ -300,6 +300,10 @@
def _match_on(self, branch, revs):
"""Lookup a revision by revision number"""
+ branch, revno, revision_id = self._lookup(branch, revs)
+ return RevisionInfo(branch, revno, revision_id)
+
+ def _lookup(self, branch, revs_or_none):
loc = self.spec.find(':')
if loc == -1:
revno_spec = self.spec
@@ -334,7 +338,7 @@
# the branch object.
from bzrlib.branch import Branch
branch = Branch.open(branch_spec)
- revs = None
+ revs_or_none = None
if dotted:
branch.lock_read()
@@ -346,11 +350,11 @@
finally:
branch.unlock()
if len(revisions) != 1:
- return RevisionInfo(branch, None, None)
+ return branch, None, None
else:
# there is no traditional 'revno' for dotted-decimal revnos.
# so for API compatability we return None.
- return RevisionInfo(branch, None, revisions[0])
+ return branch, None, revisions[0]
else:
last_revno, last_revision_id = branch.last_revision_info()
if revno < 0:
@@ -361,14 +365,15 @@
else:
revno = last_revno + revno + 1
try:
- revision_id = branch.get_rev_id(revno, revs)
+ revision_id = branch.get_rev_id(revno, revs_or_none)
except errors.NoSuchRevision:
raise errors.InvalidRevisionSpec(self.user_spec, branch)
- return RevisionInfo(branch, revno, revision_id)
+ return branch, revno, revision_id
def _as_revision_id(self, context_branch):
# We would have the revno here, but we don't really care
- return self._match_on(context_branch, None).rev_id
+ branch, revno, revision_id = self._lookup(context_branch, None)
+ return revision_id
def needs_branch(self):
return self.spec.find(':') == -1
More information about the bazaar-commits
mailing list