Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 46779:49fd21f32695
revlog: guarantee that p1 != null if a non-null parent exists
This change does not affect the hashing (which already did this
transformation), but can change the log output in the rare case where
this behavior was observed in repositories. The change can simplify
iteration code where regular changesets and merges are distinct
branches.
Differential Revision: https://phab.mercurial-scm.org/D10150
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Wed, 10 Mar 2021 18:09:21 +0100 |
parents | ba8e508a8e69 |
children | 6266d19556ad |
comparison
equal
deleted
inserted
replaced
46778:066b8d8f75b8 | 46779:49fd21f32695 |
---|---|
906 entry = self.index[rev] | 906 entry = self.index[rev] |
907 except IndexError: | 907 except IndexError: |
908 if rev == wdirrev: | 908 if rev == wdirrev: |
909 raise error.WdirUnsupported | 909 raise error.WdirUnsupported |
910 raise | 910 raise |
911 | 911 if entry[5] == nullrev: |
912 return entry[5], entry[6] | 912 return entry[6], entry[5] |
913 else: | |
914 return entry[5], entry[6] | |
913 | 915 |
914 # fast parentrevs(rev) where rev isn't filtered | 916 # fast parentrevs(rev) where rev isn't filtered |
915 _uncheckedparentrevs = parentrevs | 917 _uncheckedparentrevs = parentrevs |
916 | 918 |
917 def node(self, rev): | 919 def node(self, rev): |
928 return self.start(rev) + self.length(rev) | 930 return self.start(rev) + self.length(rev) |
929 | 931 |
930 def parents(self, node): | 932 def parents(self, node): |
931 i = self.index | 933 i = self.index |
932 d = i[self.rev(node)] | 934 d = i[self.rev(node)] |
933 return i[d[5]][7], i[d[6]][7] # map revisions to nodes inline | 935 # inline node() to avoid function call overhead |
936 if d[5] == nullid: | |
937 return i[d[6]][7], i[d[5]][7] | |
938 else: | |
939 return i[d[5]][7], i[d[6]][7] | |
934 | 940 |
935 def chainlen(self, rev): | 941 def chainlen(self, rev): |
936 return self._chaininfo(rev)[0] | 942 return self._chaininfo(rev)[0] |
937 | 943 |
938 def _chaininfo(self, rev): | 944 def _chaininfo(self, rev): |