diff -r 066b8d8f75b8 -r 49fd21f32695 mercurial/revlog.py --- a/mercurial/revlog.py Wed Mar 10 05:50:20 2021 +0100 +++ b/mercurial/revlog.py Wed Mar 10 18:09:21 2021 +0100 @@ -908,8 +908,10 @@ if rev == wdirrev: raise error.WdirUnsupported raise - - return entry[5], entry[6] + if entry[5] == nullrev: + return entry[6], entry[5] + else: + return entry[5], entry[6] # fast parentrevs(rev) where rev isn't filtered _uncheckedparentrevs = parentrevs @@ -930,7 +932,11 @@ def parents(self, node): i = self.index d = i[self.rev(node)] - return i[d[5]][7], i[d[6]][7] # map revisions to nodes inline + # inline node() to avoid function call overhead + if d[5] == nullid: + return i[d[6]][7], i[d[5]][7] + else: + return i[d[5]][7], i[d[6]][7] def chainlen(self, rev): return self._chaininfo(rev)[0]