##// END OF EJS Templates
git: add missing `repository.imanifestdict` methods to `gittreemanifest`...
git: add missing `repository.imanifestdict` methods to `gittreemanifest` The next logical step was to explicitly subclass `repository.imanifestdict`, but pytype flagged a few missing methods, because they're marked abstract. File "/mnt/c/Users/Matt/hg/hgext/git/manifest.py", line 238, in copy: Can't instantiate gittreemanifest with abstract methods dirs, fastdelta, set [not-instantiable] File "/mnt/c/Users/Matt/hg/hgext/git/manifest.py", line 287, in read: Can't instantiate gittreemanifest with abstract methods dirs, fastdelta, set [not-instantiable] File "/mnt/c/Users/Matt/hg/hgext/git/manifest.py", line 309, in read: Can't instantiate gittreemanifest with abstract methods dirs, fastdelta, set [not-instantiable] I'm not bothering to figure out how to implement them- add them to appease pytype, and put a TODO to fill in a proper implementation later.

File last commit:

r52756:f4733654 default
r53391:db6efd74 default
Show More
node.py
61 lines | 1.8 KiB | text/x-python | PythonLexer
# node.py - basic nodeid manipulation for mercurial
#
# Copyright 2005, 2006 Olivia Mackall <olivia@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import annotations
import binascii
# This ugly style has a noticeable effect in manifest parsing
hex = binascii.hexlify
bin = binascii.unhexlify
def short(node):
return hex(node[:6])
nullrev = -1
# pseudo identifier for working directory
# (experimental, so don't add too many dependencies on it)
wdirrev = 0x7FFFFFFF
class sha1nodeconstants:
nodelen = 20
# In hex, this is '0000000000000000000000000000000000000000'
nullid = b"\0" * nodelen
nullhex = hex(nullid)
# Phony node value to stand-in for new files in some uses of
# manifests.
# In hex, this is '2121212121212121212121212121212121212121'
newnodeid = b'!!!!!!!!!!!!!!!!!!!!'
# In hex, this is '3030303030303030303030303030306164646564'
addednodeid = b'000000000000000added'
# In hex, this is '3030303030303030303030306d6f646966696564'
modifiednodeid = b'000000000000modified'
wdirfilenodeids = {newnodeid, addednodeid, modifiednodeid}
# pseudo identifier for working directory
# (experimental, so don't add too many dependencies on it)
# In hex, this is 'ffffffffffffffffffffffffffffffffffffffff'
wdirid = b"\xff" * nodelen
wdirhex = hex(wdirid)
# legacy starting point for porting modules
nullid = sha1nodeconstants.nullid
nullhex = sha1nodeconstants.nullhex
newnodeid = sha1nodeconstants.newnodeid
addednodeid = sha1nodeconstants.addednodeid
modifiednodeid = sha1nodeconstants.modifiednodeid
wdirfilenodeids = sha1nodeconstants.wdirfilenodeids
wdirid = sha1nodeconstants.wdirid
wdirhex = sha1nodeconstants.wdirhex