Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 7367:ad0eb8762458
context: special-case changectx setup for integer changeid
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Thu, 13 Nov 2008 21:09:51 +0100 |
parents | 9fe97eea5510 |
children | 595ba2537d4f |
comparison
equal
deleted
inserted
replaced
7366:eb240755386d | 7367:ad0eb8762458 |
---|---|
15 def __init__(self, repo, changeid=''): | 15 def __init__(self, repo, changeid=''): |
16 """changeid is a revision number, node, or tag""" | 16 """changeid is a revision number, node, or tag""" |
17 if changeid == '': | 17 if changeid == '': |
18 changeid = '.' | 18 changeid = '.' |
19 self._repo = repo | 19 self._repo = repo |
20 self._node = self._repo.lookup(changeid) | 20 if isinstance(changeid, (long, int)): |
21 self._rev = self._repo.changelog.rev(self._node) | 21 self._rev = changeid |
22 self._node = self._repo.changelog.node(changeid) | |
23 else: | |
24 self._node = self._repo.lookup(changeid) | |
25 self._rev = self._repo.changelog.rev(self._node) | |
22 | 26 |
23 def __str__(self): | 27 def __str__(self): |
24 return short(self.node()) | 28 return short(self.node()) |
25 | 29 |
26 def __int__(self): | 30 def __int__(self): |
57 elif name == '_manifestdelta': | 61 elif name == '_manifestdelta': |
58 md = self._repo.manifest.readdelta(self._changeset[0]) | 62 md = self._repo.manifest.readdelta(self._changeset[0]) |
59 self._manifestdelta = md | 63 self._manifestdelta = md |
60 return self._manifestdelta | 64 return self._manifestdelta |
61 elif name == '_parents': | 65 elif name == '_parents': |
62 p = self._repo.changelog.parents(self._node) | 66 p = self._repo.changelog.parentrevs(self._rev) |
63 if p[1] == nullid: | 67 if p[1] == nullrev: |
64 p = p[:-1] | 68 p = p[:-1] |
65 self._parents = [changectx(self._repo, x) for x in p] | 69 self._parents = [changectx(self._repo, x) for x in p] |
66 return self._parents | 70 return self._parents |
67 else: | 71 else: |
68 raise AttributeError(name) | 72 raise AttributeError(name) |