Mercurial > public > mercurial-scm > hg-stable
annotate mercurial/revlogutils/__init__.py @ 43572:a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
This class make the "pure" nodemap raise the same exception than the C-extension
one.
This is a step toward unifying nodemap and index, the class is not meant to
survive on the long run.
This work is part of a refactoring to unify the revlog index and the nodemap.
This unification prepare the use of a persistent nodemap.
There is a new `isinstance` call, it will be cleaned up in coming changesets.
Differential Revision: https://phab.mercurial-scm.org/D7312
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 06 Nov 2019 14:13:19 +0100 |
parents | 729082bb9938 |
children | 9e1932eb41f9 |
rev | line source |
---|---|
43572
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
1 # mercurial.revlogutils -- basic utilities for revlog |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
2 # |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
3 # Copyright 2019 Pierre-Yves David <pierre-yves.david@octobus.net> |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
4 # |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
6 # GNU General Public License version 2 or any later version. |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
7 |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
8 from __future__ import absolute_import |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
9 from .. import error |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
10 |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
11 |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
12 class NodeMap(dict): |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
13 def __missing__(self, x): |
a7c0c5b5a50f
revlog: introduce an explicit NodeMap class for pure code
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
39356
diff
changeset
|
14 raise error.RevlogError('unknown node: %s' % x) |