annotate tests/revlog-formatv0.py @ 48670:6d2ddea0721a stable

stream-clone: filter possible missing requirements using all supported one The `supportedformat` requirements is missing some important requirements and it seems better to filter out with all requirements we know, not just an "arbitrary" subset. The `supportedformat` set is lacking some important requirements (for example `revlog-compression-zstd`). This is getting fixed on default (for Mercurial 6.1) However, fixing that in 6.1 means the stream requirements sent over the wire will contains more items. And if we don't apply this fix on older version, they might end up complaining about lacking support for feature they actually support for years. This patch does not fix the deeper problem (advertised stream requirement lacking some of them), but focus on the trivial part : Lets use the full set of supported requirement for looking for unsupported ones. This patch should be simple to backport to older version of Mercurial and packager should be encouraged to do so. This is a graft of d9017df70135 from default. Differential Revision: https://phab.mercurial-scm.org/D12091
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 24 Jan 2022 11:49:06 +0100
parents c102b704edb5
children 6000f5b25c9b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45830
c102b704edb5 global: use python3 in shebangs
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43076
diff changeset
1 #!/usr/bin/env python3
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
2 # Copyright 2010 Intevation GmbH
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
3 # Author(s):
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
4 # Thomas Arendsen Hein <thomas@intevation.de>
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
5 #
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
6 # This software may be used and distributed according to the terms of the
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
7 # GNU General Public License version 2 or any later version.
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
8
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
9 """Create a Mercurial repository in revlog format 0
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
10
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
11 changeset: 0:a1ef0b125355
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
12 tag: tip
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
13 user: user
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
14 date: Thu Jan 01 00:00:00 1970 +0000
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
15 files: empty
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
16 description:
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
17 empty file
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
18 """
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
19
28945
05982f7ab231 py3: use absolute_import in revlog-formatv0.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 12170
diff changeset
20 from __future__ import absolute_import
36565
9805c906aaad tests: port helper script revlog-formatv0.py to python 3
Augie Fackler <augie@google.com>
parents: 35570
diff changeset
21 import binascii
28945
05982f7ab231 py3: use absolute_import in revlog-formatv0.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 12170
diff changeset
22 import os
05982f7ab231 py3: use absolute_import in revlog-formatv0.py
Robert Stanca <robert.stanca7@gmail.com>
parents: 12170
diff changeset
23 import sys
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
24
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
25 files = [
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
26 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
27 b'formatv0/.hg/00changelog.i',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
28 b'000000000000004400000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
29 b'000000000000000000000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
30 b'0000a1ef0b125355d27765928be600cfe85784284ab3',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
31 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
32 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
33 b'formatv0/.hg/00changelog.d',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
34 b'756163613935613961356635353036303562366138343738336237'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
35 b'61623536363738616436356635380a757365720a3020300a656d70'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
36 b'74790a0a656d7074792066696c65',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
37 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
38 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
39 b'formatv0/.hg/00manifest.i',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
40 b'000000000000003000000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
41 b'000000000000000000000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
42 b'0000aca95a9a5f550605b6a84783b7ab56678ad65f58',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
43 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
44 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
45 b'formatv0/.hg/00manifest.d',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
46 b'75656d707479006238306465356431333837353835343163356630'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
47 b'35323635616431343461623966613836643164620a',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
48 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
49 (
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
50 b'formatv0/.hg/data/empty.i',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
51 b'000000000000000000000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
52 b'000000000000000000000000000000000000000000000000000000'
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
53 b'0000b80de5d138758541c5f05265ad144ab9fa86d1db',
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
54 ),
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
55 (b'formatv0/.hg/data/empty.d', b''),
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
56 ]
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
57
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
58
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
59 def makedirs(name):
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
60 """recursive directory creation"""
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
61 parent = os.path.dirname(name)
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
62 if parent:
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
63 makedirs(parent)
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
64 os.mkdir(name)
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
65
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36565
diff changeset
66
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
67 makedirs(os.path.join(*'formatv0/.hg/data'.split('/')))
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
68
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
69 for name, data in files:
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
70 f = open(name, 'wb')
36565
9805c906aaad tests: port helper script revlog-formatv0.py to python 3
Augie Fackler <augie@google.com>
parents: 35570
diff changeset
71 f.write(binascii.unhexlify(data))
12170
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
72 f.close()
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
73
581066a319e5 verify: fix "missing revlog!" errors for revlog format v0 and add test
Thomas Arendsen Hein <thomas@intevation.de>
parents:
diff changeset
74 sys.exit(0)