Mercurial > hg
annotate mercurial/node.py @ 49779:7d6c8943353a stable
hg: show the correct message when cloning an LFS repo with extension disabled
The `extensions._disabledpaths()` doesn't handle fetching help from `__index__`,
so it returns an empty dictionary of paths. That means None is always returned
from `extensions.disabled_help()` when embedding resources inside the pyoxidizer
or py2exe binary, regardless of the arg or if is an external extension stored in
the filesystem. And that means wrongly telling the user with an explicitly
disabled LFS extension that it will be enabled locally upon cloning from an LFS
remote. That causes test-lfs-serve.t:295 to fail.
This effectively reverts most of the rest of 843418dc0b1b, while keeping the
help text change in place (which was specifically identified as a problem).
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 05 Dec 2022 15:14:33 -0500 |
parents | 63fd0282ad40 |
children | f4733654f144 |
rev | line source |
---|---|
8226
8b2cd04a6e97
put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents:
8225
diff
changeset
|
1 # node.py - basic nodeid manipulation for mercurial |
8b2cd04a6e97
put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents:
8225
diff
changeset
|
2 # |
46819
d4ba4d51f85f
contributor: change mentions of mpm to olivia
Raphaël Gomès <rgomes@octobus.net>
parents:
46780
diff
changeset
|
3 # Copyright 2005, 2006 Olivia Mackall <olivia@selenic.com> |
8226
8b2cd04a6e97
put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents:
8225
diff
changeset
|
4 # |
8b2cd04a6e97
put license and copyright info into comment blocks
Martin Geisler <mg@lazybytes.net>
parents:
8225
diff
changeset
|
5 # This software may be used and distributed according to the terms of the |
10263 | 6 # GNU General Public License version 2 or any later version. |
1089 | 7 |
25962
738314da6c75
node: use absolute_import
Gregory Szorc <gregory.szorc@gmail.com>
parents:
25737
diff
changeset
|
8 |
3877
abaee83ce0a6
Replace demandload with new demandimport
Matt Mackall <mpm@selenic.com>
parents:
3578
diff
changeset
|
9 import binascii |
1089 | 10 |
26980
18f50b8cbf1e
node: add 'nullhex', hex-encoded nullid
Siddharth Agarwal <sid0@fb.com>
parents:
25962
diff
changeset
|
11 # This ugly style has a noticeable effect in manifest parsing |
18f50b8cbf1e
node: add 'nullhex', hex-encoded nullid
Siddharth Agarwal <sid0@fb.com>
parents:
25962
diff
changeset
|
12 hex = binascii.hexlify |
49248
63fd0282ad40
node: stop converting binascii.Error to TypeError in bin()
Manuel Jacob <me@manueljacob.de>
parents:
48946
diff
changeset
|
13 bin = binascii.unhexlify |
26980
18f50b8cbf1e
node: add 'nullhex', hex-encoded nullid
Siddharth Agarwal <sid0@fb.com>
parents:
25962
diff
changeset
|
14 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
39195
diff
changeset
|
15 |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
16 def short(node): |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
17 return hex(node[:6]) |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
18 |
1089 | 19 |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
20 nullrev = -1 |
30360
0298a07f64d9
dirstate: change placeholder hash length to 20 bytes
Durham Goode <durham@fb.com>
parents:
28585
diff
changeset
|
21 |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
22 # pseudo identifier for working directory |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
23 # (experimental, so don't add too many dependencies on it) |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
39195
diff
changeset
|
24 wdirrev = 0x7FFFFFFF |
25737
1a5211f2f87f
node: define experimental identifiers for working directory
Yuya Nishihara <yuya@tcha.org>
parents:
10263
diff
changeset
|
25 |
43075
57875cf423c9
style: run a patched black on a subset of mercurial
Augie Fackler <augie@google.com>
parents:
39195
diff
changeset
|
26 |
48946
642e31cb55f0
py3: use class X: instead of class X(object):
Gregory Szorc <gregory.szorc@gmail.com>
parents:
48875
diff
changeset
|
27 class sha1nodeconstants: |
46780
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
28 nodelen = 20 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
29 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
30 # In hex, this is '0000000000000000000000000000000000000000' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
31 nullid = b"\0" * nodelen |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
32 nullhex = hex(nullid) |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
33 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
34 # Phony node value to stand-in for new files in some uses of |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
35 # manifests. |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
36 # In hex, this is '2121212121212121212121212121212121212121' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
37 newnodeid = b'!!!!!!!!!!!!!!!!!!!!' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
38 # In hex, this is '3030303030303030303030303030306164646564' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
39 addednodeid = b'000000000000000added' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
40 # In hex, this is '3030303030303030303030306d6f646966696564' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
41 modifiednodeid = b'000000000000modified' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
42 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
43 wdirfilenodeids = {newnodeid, addednodeid, modifiednodeid} |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
44 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
45 # pseudo identifier for working directory |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
46 # (experimental, so don't add too many dependencies on it) |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
47 # In hex, this is 'ffffffffffffffffffffffffffffffffffffffff' |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
48 wdirid = b"\xff" * nodelen |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
49 wdirhex = hex(wdirid) |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
50 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
51 |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
52 # legacy starting point for porting modules |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
53 nullid = sha1nodeconstants.nullid |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
54 nullhex = sha1nodeconstants.nullhex |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
55 newnodeid = sha1nodeconstants.newnodeid |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
56 addednodeid = sha1nodeconstants.addednodeid |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
57 modifiednodeid = sha1nodeconstants.modifiednodeid |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
58 wdirfilenodeids = sha1nodeconstants.wdirfilenodeids |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
59 wdirid = sha1nodeconstants.wdirid |
6266d19556ad
node: introduce nodeconstants class
Joerg Sonnenberger <joerg@bec.de>
parents:
43077
diff
changeset
|
60 wdirhex = sha1nodeconstants.wdirhex |