##// END OF EJS Templates
branching: merge stable into default
Raphaël Gomès -
r50367:f59e49f6 merge default
parent child Browse files
Show More
@@ -0,0 +1,12 b''
1 skip ignored directories if -i or --all not specified
2
3 $ hg init t
4 $ cd t
5 $ echo 'ignored' > .hgignore
6 $ hg ci -qA -m init -d'2 0'
7 $ mkdir ignored
8 $ ls
9 ignored
10 $ hg purge -v --no-confirm
11 $ ls
12 ignored
@@ -231,3 +231,5 b' 6b10151b962108f65bfa12b3918b1021ca334f73'
231 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
@@ -244,3 +244,5 b' 6b10151b962108f65bfa12b3918b1021ca334f73'
244 0cc5f74ff7f0f4ac2427096bddbe102dbc2453ae 6.1.4
244 0cc5f74ff7f0f4ac2427096bddbe102dbc2453ae 6.1.4
245 288de6f5d724bba7bf1669e2838f196962bb7528 6.2rc0
245 288de6f5d724bba7bf1669e2838f196962bb7528 6.2rc0
246 094a5fa3cf52f936e0de3f1e507c818bee5ece6b 6.2
246 094a5fa3cf52f936e0de3f1e507c818bee5ece6b 6.2
247 f69bffd00abe3a1b94d1032eb2c92e611d16a192 6.2.1
248 b5c8524827d20fe2e0ca8fb1234a0fe35a1a36c7 6.2.2
@@ -59,7 +59,7 b" DEBIAN_ACCOUNT_ID_2 = '136693071363'"
59 UBUNTU_ACCOUNT_ID = '099720109477'
59 UBUNTU_ACCOUNT_ID = '099720109477'
60
60
61
61
62 WINDOWS_BASE_IMAGE_NAME = 'Windows_Server-2019-English-Full-Base-*'
62 WINDOWS_BASE_IMAGE_NAME = 'Windows_Server-2022-English-Full-Base-*'
63
63
64
64
65 KEY_PAIRS = {
65 KEY_PAIRS = {
@@ -174,6 +174,23 b" WINDOWS_USER_DATA = r'''"
174 net user Administrator "%s"
174 net user Administrator "%s"
175 wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE
175 wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE
176
176
177 # And set it via EC2Launch so it persists across reboots.
178 $config = & $env:ProgramFiles\Amazon\EC2Launch\EC2Launch.exe get-agent-config --format json | ConvertFrom-Json
179 $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml
180 $setAdminAccount = @"
181 {
182 "task": "setAdminAccount",
183 "inputs": {
184 "password": {
185 "type": "static",
186 "data": "%s"
187 }
188 }
189 }
190 "@
191 $config.config | %%{if($_.stage -eq 'preReady'){$_.tasks += (ConvertFrom-Json -InputObject $setAdminAccount)}}
192 $config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml
193
177 # First, make sure WinRM can't be connected to
194 # First, make sure WinRM can't be connected to
178 netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" new enable=yes action=block
195 netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" new enable=yes action=block
179
196
@@ -752,7 +769,7 b' def create_temp_windows_ec2_instances('
752 )
769 )
753
770
754 if bootstrap:
771 if bootstrap:
755 config['UserData'] = WINDOWS_USER_DATA % password
772 config['UserData'] = WINDOWS_USER_DATA % (password, password)
756
773
757 with temporary_ec2_instances(c.ec2resource, config) as instances:
774 with temporary_ec2_instances(c.ec2resource, config) as instances:
758 wait_for_ip_addresses(instances)
775 wait_for_ip_addresses(instances)
@@ -1173,28 +1190,16 b' def ensure_windows_dev_ami('
1173 with INSTALL_WINDOWS_DEPENDENCIES.open('r', encoding='utf-8') as fh:
1190 with INSTALL_WINDOWS_DEPENDENCIES.open('r', encoding='utf-8') as fh:
1174 commands.extend(l.rstrip() for l in fh)
1191 commands.extend(l.rstrip() for l in fh)
1175
1192
1176 # Schedule run of EC2Launch on next boot. This ensures that UserData
1177 # is executed.
1178 # We disable setComputerName because it forces a reboot.
1179 # We set an explicit admin password because this causes UserData to run
1180 # as Administrator instead of System.
1181 commands.extend(
1182 [
1183 r'''Set-Content -Path C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json '''
1184 r'''-Value '{"setComputerName": false, "setWallpaper": true, "addDnsSuffixList": true, '''
1185 r'''"extendBootVolumeSize": true, "handleUserData": true, '''
1186 r'''"adminPasswordType": "Specify", "adminPassword": "%s"}' '''
1187 % c.automation.default_password(),
1188 r'C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 '
1189 r'–Schedule',
1190 ]
1191 )
1192
1193 # Disable Windows Defender when bootstrapping because it just slows
1193 # Disable Windows Defender when bootstrapping because it just slows
1194 # things down.
1194 # things down.
1195 commands.insert(0, 'Set-MpPreference -DisableRealtimeMonitoring $true')
1195 commands.insert(0, 'Set-MpPreference -DisableRealtimeMonitoring $true')
1196 commands.append('Set-MpPreference -DisableRealtimeMonitoring $false')
1196 commands.append('Set-MpPreference -DisableRealtimeMonitoring $false')
1197
1197
1198 # Trigger shutdown to prepare for imaging.
1199 commands.append(
1200 'Stop-Computer -ComputerName localhost',
1201 )
1202
1198 # Compute a deterministic fingerprint to determine whether image needs
1203 # Compute a deterministic fingerprint to determine whether image needs
1199 # to be regenerated.
1204 # to be regenerated.
1200 fingerprint = resolve_fingerprint(
1205 fingerprint = resolve_fingerprint(
@@ -45,6 +45,7 b' Write-Output "updated Mercurial working '
45 '''.lstrip()
45 '''.lstrip()
46
46
47 BUILD_INNO_PYTHON3 = r'''
47 BUILD_INNO_PYTHON3 = r'''
48 $Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH"
48 $Env:RUSTUP_HOME = "C:\hgdev\rustup"
49 $Env:RUSTUP_HOME = "C:\hgdev\rustup"
49 $Env:CARGO_HOME = "C:\hgdev\cargo"
50 $Env:CARGO_HOME = "C:\hgdev\cargo"
50 Set-Location C:\hgdev\src
51 Set-Location C:\hgdev\src
@@ -56,6 +57,7 b' if ($LASTEXITCODE -ne 0) {{'
56
57
57
58
58 BUILD_WHEEL = r'''
59 BUILD_WHEEL = r'''
60 $Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH"
59 Set-Location C:\hgdev\src
61 Set-Location C:\hgdev\src
60 C:\hgdev\python{python_version}-{arch}\python.exe -m pip wheel --wheel-dir dist .
62 C:\hgdev\python{python_version}-{arch}\python.exe -m pip wheel --wheel-dir dist .
61 if ($LASTEXITCODE -ne 0) {{
63 if ($LASTEXITCODE -ne 0) {{
@@ -64,6 +66,7 b' if ($LASTEXITCODE -ne 0) {{'
64 '''
66 '''
65
67
66 BUILD_WIX_PYTHON3 = r'''
68 BUILD_WIX_PYTHON3 = r'''
69 $Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH"
67 $Env:RUSTUP_HOME = "C:\hgdev\rustup"
70 $Env:RUSTUP_HOME = "C:\hgdev\rustup"
68 $Env:CARGO_HOME = "C:\hgdev\cargo"
71 $Env:CARGO_HOME = "C:\hgdev\cargo"
69 Set-Location C:\hgdev\src
72 Set-Location C:\hgdev\src
@@ -1,193 +1,267 b''
1 #
1 #
2 # This file is autogenerated by pip-compile
2 # This file is autogenerated by pip-compile with python 3.10
3 # To update, run:
3 # To update, run:
4 #
4 #
5 # pip-compile --generate-hashes --output-file=contrib/automation/requirements.txt contrib/automation/requirements.txt.in
5 # pip-compile --generate-hashes --output-file=contrib/automation/requirements.txt contrib/automation/requirements.txt.in
6 #
6 #
7 asn1crypto==1.0.1 \
7 bcrypt==3.2.2 \
8 --hash=sha256:0b199f211ae690df3db4fd6c1c4ff976497fb1da689193e368eedbadc53d9292 \
8 --hash=sha256:2b02d6bfc6336d1094276f3f588aa1225a598e27f8e3388f4db9948cb707b521 \
9 --hash=sha256:bca90060bd995c3f62c4433168eab407e44bdbdb567b3f3a396a676c1a4c4a3f \
9 --hash=sha256:433c410c2177057705da2a9f2cd01dd157493b2a7ac14c8593a16b3dab6b6bfb \
10 # via cryptography
10 --hash=sha256:4e029cef560967fb0cf4a802bcf4d562d3d6b4b1bf81de5ec1abbe0f1adb027e \
11 bcrypt==3.1.7 \
11 --hash=sha256:61bae49580dce88095d669226d5076d0b9d927754cedbdf76c6c9f5099ad6f26 \
12 --hash=sha256:0258f143f3de96b7c14f762c770f5fc56ccd72f8a1857a451c1cd9a655d9ac89 \
12 --hash=sha256:6d2cb9d969bfca5bc08e45864137276e4c3d3d7de2b162171def3d188bf9d34a \
13 --hash=sha256:0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42 \
13 --hash=sha256:7180d98a96f00b1050e93f5b0f556e658605dd9f524d0b0e68ae7944673f525e \
14 --hash=sha256:19a4b72a6ae5bb467fea018b825f0a7d917789bcfe893e53f15c92805d187294 \
14 --hash=sha256:7d9ba2e41e330d2af4af6b1b6ec9e6128e91343d0b4afb9282e54e5508f31baa \
15 --hash=sha256:5432dd7b34107ae8ed6c10a71b4397f1c853bd39a4d6ffa7e35f40584cffd161 \
15 --hash=sha256:7ff2069240c6bbe49109fe84ca80508773a904f5a8cb960e02a977f7f519b129 \
16 --hash=sha256:69361315039878c0680be456640f8705d76cb4a3a3fe1e057e0f261b74be4b31 \
16 --hash=sha256:88273d806ab3a50d06bc6a2fc7c87d737dd669b76ad955f449c43095389bc8fb \
17 --hash=sha256:6fe49a60b25b584e2f4ef175b29d3a83ba63b3a4df1b4c0605b826668d1b6be5 \
17 --hash=sha256:a2c46100e315c3a5b90fdc53e429c006c5f962529bc27e1dfd656292c20ccc40 \
18 --hash=sha256:74a015102e877d0ccd02cdeaa18b32aa7273746914a6c5d0456dd442cb65b99c \
18 --hash=sha256:cd43303d6b8a165c29ec6756afd169faba9396a9472cdff753fe9f19b96ce2fa
19 --hash=sha256:763669a367869786bb4c8fcf731f4175775a5b43f070f50f46f0b59da45375d0 \
20 --hash=sha256:8b10acde4e1919d6015e1df86d4c217d3b5b01bb7744c36113ea43d529e1c3de \
21 --hash=sha256:9fe92406c857409b70a38729dbdf6578caf9228de0aef5bc44f859ffe971a39e \
22 --hash=sha256:a190f2a5dbbdbff4b74e3103cef44344bc30e61255beb27310e2aec407766052 \
23 --hash=sha256:a595c12c618119255c90deb4b046e1ca3bcfad64667c43d1166f2b04bc72db09 \
24 --hash=sha256:c9457fa5c121e94a58d6505cadca8bed1c64444b83b3204928a866ca2e599105 \
25 --hash=sha256:cb93f6b2ab0f6853550b74e051d297c27a638719753eb9ff66d1e4072be67133 \
26 --hash=sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7 \
27 --hash=sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc \
28 # via paramiko
19 # via paramiko
29 bleach==3.1.0 \
20 bleach==5.0.0 \
30 --hash=sha256:213336e49e102af26d9cde77dd2d0397afabc5a6bf2fed985dc35b5d1e285a16 \
21 --hash=sha256:08a1fe86d253b5c88c92cc3d810fd8048a16d15762e1e5b74d502256e5926aa1 \
31 --hash=sha256:3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa \
22 --hash=sha256:c6d6cc054bdc9c83b48b8083e236e5f00f238428666d2ce2e083eaa5fd568565
32 # via readme-renderer
23 # via readme-renderer
33 boto3==1.9.243 \
24 boto3==1.22.7 \
34 --hash=sha256:404acbecef8f4912f18312fcfaffe7eba7f10b3b7adf7853bdba59cdf2275ebb \
25 --hash=sha256:4dc0df36c3465ff0d586017da68b0152123695f38f30ad98fed7185e59298d2c \
35 --hash=sha256:c6e5a7e4548ce7586c354ff633f2a66ba3c471d15a8ae6a30f873122ab04e1cf
26 --hash=sha256:de4fa49ca1cbc93313144e93e6d0997cbb61c8cca91f3418b4e3646dc215f441
36 botocore==1.12.243 \
27 # via -r contrib/automation/requirements.txt.in
37 --hash=sha256:397585a7881230274afb8d1877ef69a661b0a311745cd324f14a052fb2a2863a \
28 botocore==1.25.7 \
38 --hash=sha256:4496f8da89cb496462a831897ad248e13e431d9fa7e41e06d426fd6658ab6e59 \
29 --hash=sha256:190361776d96323ff401b976175f76172acf7ebbe3efbb19c4c6f9800a9ad6b6 \
39 # via boto3, s3transfer
30 --hash=sha256:83da857c12fff5cf4c1a64afaa72a28ff5bef929a2834ec4ed5b0b674f88fd0e
40 certifi==2021.5.30 \
31 # via
41 --hash=sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee \
32 # boto3
42 --hash=sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8 \
33 # s3transfer
34 certifi==2021.10.8 \
35 --hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \
36 --hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569
43 # via requests
37 # via requests
44 cffi==1.12.3 \
38 cffi==1.15.0 \
45 --hash=sha256:041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774 \
39 --hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \
46 --hash=sha256:046ef9a22f5d3eed06334d01b1e836977eeef500d9b78e9ef693f9380ad0b83d \
40 --hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \
47 --hash=sha256:066bc4c7895c91812eff46f4b1c285220947d4aa46fa0a2651ff85f2afae9c90 \
41 --hash=sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636 \
48 --hash=sha256:066c7ff148ae33040c01058662d6752fd73fbc8e64787229ea8498c7d7f4041b \
42 --hash=sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20 \
49 --hash=sha256:2444d0c61f03dcd26dbf7600cf64354376ee579acad77aef459e34efcb438c63 \
43 --hash=sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728 \
50 --hash=sha256:300832850b8f7967e278870c5d51e3819b9aad8f0a2c8dbe39ab11f119237f45 \
44 --hash=sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27 \
51 --hash=sha256:34c77afe85b6b9e967bd8154e3855e847b70ca42043db6ad17f26899a3df1b25 \
45 --hash=sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66 \
52 --hash=sha256:46de5fa00f7ac09f020729148ff632819649b3e05a007d286242c4882f7b1dc3 \
46 --hash=sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443 \
53 --hash=sha256:4aa8ee7ba27c472d429b980c51e714a24f47ca296d53f4d7868075b175866f4b \
47 --hash=sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0 \
54 --hash=sha256:4d0004eb4351e35ed950c14c11e734182591465a33e960a4ab5e8d4f04d72647 \
48 --hash=sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7 \
55 --hash=sha256:4e3d3f31a1e202b0f5a35ba3bc4eb41e2fc2b11c1eff38b362de710bcffb5016 \
49 --hash=sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39 \
56 --hash=sha256:50bec6d35e6b1aaeb17f7c4e2b9374ebf95a8975d57863546fa83e8d31bdb8c4 \
50 --hash=sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605 \
57 --hash=sha256:55cad9a6df1e2a1d62063f79d0881a414a906a6962bc160ac968cc03ed3efcfb \
51 --hash=sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a \
58 --hash=sha256:5662ad4e4e84f1eaa8efce5da695c5d2e229c563f9d5ce5b0113f71321bcf753 \
52 --hash=sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37 \
59 --hash=sha256:59b4dc008f98fc6ee2bb4fd7fc786a8d70000d058c2bbe2698275bc53a8d3fa7 \
53 --hash=sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029 \
60 --hash=sha256:73e1ffefe05e4ccd7bcea61af76f36077b914f92b76f95ccf00b0c1b9186f3f9 \
54 --hash=sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139 \
61 --hash=sha256:a1f0fd46eba2d71ce1589f7e50a9e2ffaeb739fb2c11e8192aa2b45d5f6cc41f \
55 --hash=sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc \
62 --hash=sha256:a2e85dc204556657661051ff4bab75a84e968669765c8a2cd425918699c3d0e8 \
56 --hash=sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df \
63 --hash=sha256:a5457d47dfff24882a21492e5815f891c0ca35fefae8aa742c6c263dac16ef1f \
57 --hash=sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14 \
64 --hash=sha256:a8dccd61d52a8dae4a825cdbb7735da530179fea472903eb871a5513b5abbfdc \
58 --hash=sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880 \
65 --hash=sha256:ae61af521ed676cf16ae94f30fe202781a38d7178b6b4ab622e4eec8cefaff42 \
59 --hash=sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2 \
66 --hash=sha256:b012a5edb48288f77a63dba0840c92d0504aa215612da4541b7b42d849bc83a3 \
60 --hash=sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a \
67 --hash=sha256:d2c5cfa536227f57f97c92ac30c8109688ace8fa4ac086d19d0af47d134e2909 \
61 --hash=sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e \
68 --hash=sha256:d42b5796e20aacc9d15e66befb7a345454eef794fdb0737d1af593447c6c8f45 \
62 --hash=sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474 \
69 --hash=sha256:dee54f5d30d775f525894d67b1495625dd9322945e7fee00731952e0368ff42d \
63 --hash=sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024 \
70 --hash=sha256:e070535507bd6aa07124258171be2ee8dfc19119c28ca94c9dfb7efd23564512 \
64 --hash=sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8 \
71 --hash=sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff \
65 --hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \
72 --hash=sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201 \
66 --hash=sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e \
73 # via bcrypt, cryptography, pynacl
67 --hash=sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a \
74 chardet==3.0.4 \
68 --hash=sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e \
75 --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \
69 --hash=sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032 \
76 --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 \
70 --hash=sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6 \
71 --hash=sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e \
72 --hash=sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b \
73 --hash=sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e \
74 --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \
75 --hash=sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962 \
76 --hash=sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c \
77 --hash=sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4 \
78 --hash=sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55 \
79 --hash=sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962 \
80 --hash=sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023 \
81 --hash=sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c \
82 --hash=sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6 \
83 --hash=sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8 \
84 --hash=sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382 \
85 --hash=sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7 \
86 --hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \
87 --hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \
88 --hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796
89 # via
90 # bcrypt
91 # cryptography
92 # pynacl
93 charset-normalizer==2.0.12 \
94 --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \
95 --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df
77 # via requests
96 # via requests
78 cryptography==2.7 \
97 commonmark==0.9.1 \
79 --hash=sha256:24b61e5fcb506424d3ec4e18bca995833839bf13c59fc43e530e488f28d46b8c \
98 --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \
80 --hash=sha256:25dd1581a183e9e7a806fe0543f485103232f940fcfc301db65e630512cce643 \
99 --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9
81 --hash=sha256:3452bba7c21c69f2df772762be0066c7ed5dc65df494a1d53a58b683a83e1216 \
100 # via rich
82 --hash=sha256:41a0be220dd1ed9e998f5891948306eb8c812b512dc398e5a01846d855050799 \
101 cryptography==37.0.2 \
83 --hash=sha256:5751d8a11b956fbfa314f6553d186b94aa70fdb03d8a4d4f1c82dcacf0cbe28a \
102 --hash=sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804 \
84 --hash=sha256:5f61c7d749048fa6e3322258b4263463bfccefecb0dd731b6561cb617a1d9bb9 \
103 --hash=sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178 \
85 --hash=sha256:72e24c521fa2106f19623a3851e9f89ddfdeb9ac63871c7643790f872a305dfc \
104 --hash=sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717 \
86 --hash=sha256:7b97ae6ef5cba2e3bb14256625423413d5ce8d1abb91d4f29b6d1a081da765f8 \
105 --hash=sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982 \
87 --hash=sha256:961e886d8a3590fd2c723cf07be14e2a91cf53c25f02435c04d39e90780e3b53 \
106 --hash=sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004 \
88 --hash=sha256:96d8473848e984184b6728e2c9d391482008646276c3ff084a1bd89e15ff53a1 \
107 --hash=sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe \
89 --hash=sha256:ae536da50c7ad1e002c3eee101871d93abdc90d9c5f651818450a0d3af718609 \
108 --hash=sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452 \
90 --hash=sha256:b0db0cecf396033abb4a93c95d1602f268b3a68bb0a9cc06a7cff587bb9a7292 \
109 --hash=sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336 \
91 --hash=sha256:cfee9164954c186b191b91d4193989ca994703b2fff406f71cf454a2d3c7327e \
110 --hash=sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4 \
92 --hash=sha256:e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6 \
111 --hash=sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15 \
93 --hash=sha256:f27d93f0139a3c056172ebb5d4f9056e770fdf0206c2f422ff2ebbad142e09ed \
112 --hash=sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d \
94 --hash=sha256:f57b76e46a58b63d1c6375017f4564a28f19a5ca912691fd2e4261b3414b618d \
113 --hash=sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c \
95 # via paramiko, pypsrp
114 --hash=sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0 \
96 docutils==0.15.2 \
115 --hash=sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06 \
97 --hash=sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0 \
116 --hash=sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9 \
98 --hash=sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827 \
117 --hash=sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1 \
99 --hash=sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99 \
118 --hash=sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023 \
100 # via botocore, readme-renderer
119 --hash=sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de \
101 idna==2.8 \
120 --hash=sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f \
102 --hash=sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407 \
121 --hash=sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181 \
103 --hash=sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c \
122 --hash=sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e \
123 --hash=sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a
124 # via
125 # paramiko
126 # pypsrp
127 # pyspnego
128 # secretstorage
129 docutils==0.18.1 \
130 --hash=sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c \
131 --hash=sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06
132 # via readme-renderer
133 idna==3.3 \
134 --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \
135 --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d
104 # via requests
136 # via requests
105 jmespath==0.9.4 \
137 importlib-metadata==4.11.3 \
106 --hash=sha256:3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6 \
138 --hash=sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6 \
107 --hash=sha256:bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c \
139 --hash=sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539
108 # via boto3, botocore
140 # via
109 ntlm-auth==1.4.0 \
141 # keyring
110 --hash=sha256:11f7a3cec38155b7cecdd9bbc8c37cd738d8012f0523b3f98d8caefe394feb97 \
142 # twine
111 --hash=sha256:350f2389c8ee5517f47db55a36ac2f8efc9742a60a678d6e2caa92385bdcaa9a \
143 jeepney==0.8.0 \
144 --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \
145 --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755
146 # via
147 # keyring
148 # secretstorage
149 jmespath==1.0.0 \
150 --hash=sha256:a490e280edd1f57d6de88636992d05b71e97d69a26a19f058ecf7d304474bf5e \
151 --hash=sha256:e8dcd576ed616f14ec02eed0005c85973b5890083313860136657e24784e4c04
152 # via
153 # boto3
154 # botocore
155 keyring==23.5.0 \
156 --hash=sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9 \
157 --hash=sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261
158 # via twine
159 paramiko==2.10.4 \
160 --hash=sha256:3c9ed6084f4b671ab66dc3c729092d32d96c3258f1426071301cb33654b09027 \
161 --hash=sha256:3d2e650b6812ce6d160abff701d6ef4434ec97934b13e95cf1ad3da70ffb5c58
162 # via -r contrib/automation/requirements.txt.in
163 pkginfo==1.8.2 \
164 --hash=sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff \
165 --hash=sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc
166 # via twine
167 pycparser==2.21 \
168 --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
169 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
170 # via cffi
171 pygments==2.12.0 \
172 --hash=sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb \
173 --hash=sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519
174 # via
175 # readme-renderer
176 # rich
177 pynacl==1.5.0 \
178 --hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \
179 --hash=sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d \
180 --hash=sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 \
181 --hash=sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1 \
182 --hash=sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92 \
183 --hash=sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff \
184 --hash=sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba \
185 --hash=sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 \
186 --hash=sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b \
187 --hash=sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543
188 # via paramiko
189 pypsrp==0.8.1 \
190 --hash=sha256:0101345ceb415896fed9b056e7b77d65312089ddc73c4286247ccf1859d4bc4d \
191 --hash=sha256:f5500acd11dfe742d51b7fbb61321ba721038a300d67763dc52babe709db65e7
192 # via -r contrib/automation/requirements.txt.in
193 pyspnego==0.5.2 \
194 --hash=sha256:1fed228edc4b1730844da8237b90489be28c55681cf3934cd04fceb2253e55bf \
195 --hash=sha256:25fbc90fc6bd16881480316739bab820cc91364765e46340da17f861f89691f1 \
196 --hash=sha256:274b3a2d37e45ad4567bc5754be04b5fefad3f7cdea7d205f739d8a26b5a9189 \
197 --hash=sha256:36db7ec38023a23a545114dfd23825639571f135c72fb4b13a1ed559a0a4d93c \
198 --hash=sha256:3b1ff3c1d5588b66f8e4ebafa3079a7bf0bdcc6fb144b944c5a101e688a5a280 \
199 --hash=sha256:4b9bda51bd964f40322aa1b33dcfc5d68f23b0680b4b5158175f2e9a04119aa9 \
200 --hash=sha256:5d6d91e35ee63a5de30eb70716bf25274bf16c2c472b046dd21fad60fe63b0b6 \
201 --hash=sha256:7562bc640bf402bb2849f325b0bb41260bd2c0cb06e38b9a8c6f7021b452c873 \
202 --hash=sha256:9c5bdb9f0207e2ce9e5410ee2205bf016755712018534c711ae6c1daff7fa7db \
203 --hash=sha256:a5c135d20819db3c48f65054d648317f369a61b7b22dc17b9e5ec9c0169541a0 \
204 --hash=sha256:bd95633e7dce69e267579bdbe992fc081a14310236b4e84c3d179b1cf6439ca5 \
205 --hash=sha256:eb41b970dbda0dfe07b1da6fc83fe9f534a66d8dea38c06c0155377697407d9a
112 # via pypsrp
206 # via pypsrp
113 paramiko==2.6.0 \
207 python-dateutil==2.8.2 \
114 --hash=sha256:99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf \
208 --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \
115 --hash=sha256:f4b2edfa0d226b70bd4ca31ea7e389325990283da23465d572ed1f70a7583041
209 --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9
116 pkginfo==1.5.0.1 \
210 # via botocore
117 --hash=sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb \
211 readme-renderer==35.0 \
118 --hash=sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32 \
212 --hash=sha256:73b84905d091c31f36e50b4ae05ae2acead661f6a09a9abb4df7d2ddcdb6a698 \
213 --hash=sha256:a727999acfc222fc21d82a12ed48c957c4989785e5865807c65a487d21677497
119 # via twine
214 # via twine
120 pycparser==2.19 \
215 requests==2.27.1 \
121 --hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3 \
216 --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \
122 # via cffi
217 --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d
123 pygments==2.4.2 \
218 # via
124 --hash=sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127 \
219 # pypsrp
125 --hash=sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297 \
220 # requests-toolbelt
126 # via readme-renderer
221 # twine
127 pynacl==1.3.0 \
128 --hash=sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255 \
129 --hash=sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c \
130 --hash=sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e \
131 --hash=sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae \
132 --hash=sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621 \
133 --hash=sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56 \
134 --hash=sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39 \
135 --hash=sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310 \
136 --hash=sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1 \
137 --hash=sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a \
138 --hash=sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786 \
139 --hash=sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b \
140 --hash=sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b \
141 --hash=sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f \
142 --hash=sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20 \
143 --hash=sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415 \
144 --hash=sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715 \
145 --hash=sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1 \
146 --hash=sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0 \
147 # via paramiko
148 pypsrp==0.4.0 \
149 --hash=sha256:64b5bdd725a9744c821483b05ecd266f6417f4c6e90ee961a08838480f7d025e \
150 --hash=sha256:f42919247fb80f7dc24c552560d7c24e754d15326030c9e3b7b94f51cfa4dc69
151 python-dateutil==2.8.0 \
152 --hash=sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb \
153 --hash=sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e \
154 # via botocore
155 readme-renderer==24.0 \
156 --hash=sha256:bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f \
157 --hash=sha256:c8532b79afc0375a85f10433eca157d6b50f7d6990f337fa498c96cd4bfc203d \
158 # via twine
159 requests-toolbelt==0.9.1 \
222 requests-toolbelt==0.9.1 \
160 --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \
223 --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \
161 --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 \
224 --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0
225 # via twine
226 rfc3986==2.0.0 \
227 --hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \
228 --hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c
162 # via twine
229 # via twine
163 requests==2.22.0 \
230 rich==12.3.0 \
164 --hash=sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 \
231 --hash=sha256:0eb63013630c6ee1237e0e395d51cb23513de6b5531235e33889e8842bdf3a6f \
165 --hash=sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31 \
232 --hash=sha256:7e8700cda776337036a712ff0495b04052fb5f957c7dfb8df997f88350044b64
166 # via pypsrp, requests-toolbelt, twine
233 # via twine
167 s3transfer==0.2.1 \
234 s3transfer==0.5.2 \
168 --hash=sha256:6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d \
235 --hash=sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971 \
169 --hash=sha256:b780f2411b824cb541dbcd2c713d0cb61c7d1bcadae204cdddda2b35cef493ba \
236 --hash=sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed
170 # via boto3
237 # via boto3
171 six==1.12.0 \
238 secretstorage==3.3.2 \
172 --hash=sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c \
239 --hash=sha256:0a8eb9645b320881c222e827c26f4cfcf55363e8b374a021981ef886657a912f \
173 --hash=sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73 \
240 --hash=sha256:755dc845b6ad76dcbcbc07ea3da75ae54bb1ea529eb72d15f83d26499a5df319
174 # via bcrypt, bleach, cryptography, pynacl, pypsrp, python-dateutil, readme-renderer
241 # via keyring
175 tqdm==4.36.1 \
242 six==1.16.0 \
176 --hash=sha256:abc25d0ce2397d070ef07d8c7e706aede7920da163c64997585d42d3537ece3d \
243 --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
177 --hash=sha256:dd3fcca8488bb1d416aa7469d2f277902f26260c45aa86b667b074cd44b3b115 \
244 --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
178 # via twine
245 # via
179 twine==2.0.0 \
246 # bleach
180 --hash=sha256:5319dd3e02ac73fcddcd94f035b9631589ab5d23e1f4699d57365199d85261e1 \
247 # paramiko
181 --hash=sha256:9fe7091715c7576df166df8ef6654e61bada39571783f2fd415bdcba867c6993
248 # python-dateutil
182 urllib3==1.25.6 \
249 twine==4.0.0 \
183 --hash=sha256:3de946ffbed6e6746608990594d08faac602528ac7015ac28d33cee6a45b7398 \
250 --hash=sha256:6f7496cf14a3a8903474552d5271c79c71916519edb42554f23f42a8563498a9 \
184 --hash=sha256:9a107b99a5393caf59c7aa3c1249c16e6879447533d0887f4336dde834c7be86 \
251 --hash=sha256:817aa0c0bdc02a5ebe32051e168e23c71a0608334e624c793011f120dbbc05b7
185 # via botocore, requests
252 # via -r contrib/automation/requirements.txt.in
253 urllib3==1.26.9 \
254 --hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \
255 --hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e
256 # via
257 # botocore
258 # requests
259 # twine
186 webencodings==0.5.1 \
260 webencodings==0.5.1 \
187 --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \
261 --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \
188 --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 \
262 --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923
189 # via bleach
263 # via bleach
190
264 zipp==3.8.0 \
191 # WARNING: The following packages were not pinned, but pip requires them to be
265 --hash=sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad \
192 # pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag.
266 --hash=sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099
193 # setuptools==41.2.0 # via twine
267 # via importlib-metadata
@@ -49,9 +49,9 b''
49 $MINGW_BIN_URL = "https://osdn.net/frs/redir.php?m=constant&f=mingw%2F68260%2Fmingw-get-0.6.3-mingw32-pre-20170905-1-bin.zip"
49 $MINGW_BIN_URL = "https://osdn.net/frs/redir.php?m=constant&f=mingw%2F68260%2Fmingw-get-0.6.3-mingw32-pre-20170905-1-bin.zip"
50 $MINGW_BIN_SHA256 = "2AB8EFD7C7D1FC8EAF8B2FA4DA4EEF8F3E47768284C021599BC7435839A046DF"
50 $MINGW_BIN_SHA256 = "2AB8EFD7C7D1FC8EAF8B2FA4DA4EEF8F3E47768284C021599BC7435839A046DF"
51
51
52 $MERCURIAL_WHEEL_FILENAME = "mercurial-5.8.1-cp39-cp39-win_amd64.whl"
52 $MERCURIAL_WHEEL_FILENAME = "mercurial-6.1.4-cp39-cp39-win_amd64.whl"
53 $MERCURIAL_WHEEL_URL = "https://files.pythonhosted.org/packages/5c/b5/a5fa664761eef29b6c90eb24cb09ab8fe2c9b4b86af41d42c17476aff29b/$MERCURIAL_WHEEL_FILENAME"
53 $MERCURIAL_WHEEL_URL = "https://files.pythonhosted.org/packages/82/86/fbcc4b552f6c1bdfdbbc5a68b0896a55ac3c6c0e8baf51394816bdc320bd/$MERCURIAL_WHEEL_FILENAME"
54 $MERCURIAL_WHEEL_SHA256 = "cbf3efa68fd7ebf94691bd00d2c86bbd47ca73620c8faa4f18b6c394bf5f82b0"
54 $MERCURIAL_WHEEL_SHA256 = "ab578daec7c21786c668b0da2e71282a290d18010255719f78d0e55145020d46"
55
55
56 $RUSTUP_INIT_URL = "https://static.rust-lang.org/rustup/archive/1.21.1/x86_64-pc-windows-gnu/rustup-init.exe"
56 $RUSTUP_INIT_URL = "https://static.rust-lang.org/rustup/archive/1.21.1/x86_64-pc-windows-gnu/rustup-init.exe"
57 $RUSTUP_INIT_SHA256 = "d17df34ba974b9b19cf5c75883a95475aa22ddc364591d75d174090d55711c72"
57 $RUSTUP_INIT_SHA256 = "d17df34ba974b9b19cf5c75883a95475aa22ddc364591d75d174090d55711c72"
@@ -80,20 +80,28 b' docutils==0.16 \\'
80 --hash=sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af \
80 --hash=sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af \
81 --hash=sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc
81 --hash=sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc
82 # via -r contrib/packaging/requirements-windows.txt.in
82 # via -r contrib/packaging/requirements-windows.txt.in
83 dulwich==0.20.6 ; python_version >= "3" \
83 dulwich==0.20.45 \
84 --hash=sha256:1ccd55e38fa9f169290f93e027ab4508202f5bdd6ef534facac4edd3f6903f0d \
84 --hash=sha256:042bc206764968b17338e32c52bb6a116154eb87a63651971946917dfa37a359 \
85 --hash=sha256:2452a0379cc7bbbd7ab893ec104d18039f1ea98b0d6be6bca5646e5cf29e0ae9 \
85 --hash=sha256:22d433ba9c776f2b0e19b1186e01e25ca286175e20f4ac422141db94eeaac08b \
86 --hash=sha256:2f4aebc54ed2d37dcee737024421452375570a422eb682232e676aa7ebc9cb4b \
86 --hash=sha256:2d7cf5171034d9d61b928bd5f9c509000e895d1ba29bd6ea850b9e4f93fca0f7 \
87 --hash=sha256:304f52b10c49c3a6ddfbd73e2e93d8e979350225cfba9688e51110e74fa2f718 \
87 --hash=sha256:3136bcaf7508522a2aa63f856743f06129261bc5a03331aa6a0654fa6d04a4ae \
88 --hash=sha256:49e747c72d9099e873bf6196260346d5996c3f28af788294d47a8accdc524de7 \
88 --hash=sha256:35015e43207752cf7924860e85a3c2290c652c0c3ee81e7c95c52d34638f605d \
89 --hash=sha256:4fee359928c59b53af153a582a7ed7595259a5a825df400301a29e17fd78dfd3 \
89 --hash=sha256:3f2c137a0003e80e384d116e65b453f8a704c2d393c30a47b447764e7f9c05a1 \
90 --hash=sha256:50ef300a9fa4efd9f85009c2bd8b515266ec1529400f8834f85c04fa9f09b2c0 \
90 --hash=sha256:49852f12c1e1d50039f927e9fdee1bd00a9b428c31b078ba5ba9fc1cf88e9d3e \
91 --hash=sha256:5348310f21b2a23847342ce464461499b6652483fa42de03714d0f6421a99698 \
91 --hash=sha256:4abb1b0e1e50192ce7204c4e14f24c989c5920c56de908365f4e66c6e3458945 \
92 --hash=sha256:7e7b5dea5178b6493fdb83adccbe81de9ddff55f79880185ed594c0e3a97209b \
92 --hash=sha256:4e405ac9426288ca782c45e066f816d878b4a529acf4d4b0b2a5bb45a804dfec \
93 --hash=sha256:8f7a7f973be2beedfb10dd8d3eb6bdf9ec466c72ad555704897cbd6357fe5021 \
93 --hash=sha256:5e41044ac51a4b3454d67e5f691808540470deeb6a852d7c5c6ca44c48b4cdc3 \
94 --hash=sha256:bea6e6caffc6c73bfd1647714c5715ab96ac49deb8beb8b67511529afa25685a \
94 --hash=sha256:65334bd7a1d91054516a49f86343e9c2549740bbddebcbb4763c8aacf2aac48c \
95 --hash=sha256:e5871b86a079e9e290f52ab14559cea1b694a0b8ed2b9ebb898f6ced7f14a406 \
95 --hash=sha256:6e02babb44bdad17b6c9c50b4f9df42f6e511e3a51555ac07dd85ec904efe0b1 \
96 --hash=sha256:e593f514b8ac740b4ceeb047745b4719bfc9f334904245c6edcb3a9d002f577b
96 --hash=sha256:70710dd9ca2a442190c7e506892db074c318ac762e221f7529b8ce34802041b7 \
97 --hash=sha256:9b689b05bc7baa5cb20ebff54291085b598a9bdf7caeab23daf93b46421d96ff \
98 --hash=sha256:b3f64870f2f206dda3308cb73563f5f59fdc084179271651a0488d12ab4185b9 \
99 --hash=sha256:bb75268cec2f3ae6f6b7addbc0db50db2e9e42b2ad8364e74b9f5b17ab0053b5 \
100 --hash=sha256:c8c0fc7d2e3b0ad6a4faadf96f0626fa50935ababfd774b9b94edaa28f0668ec \
101 --hash=sha256:d89f53a739ac3394b5ef2f178480569b7d36d4fe7b4bb49678582914530ce35b \
102 --hash=sha256:d8b6aae7af8edbfac8038e1777ae820efac33c7c22a8025d3254bbd53ec725b5 \
103 --hash=sha256:eb4189d72a0e2f3070e2abdbd10a05c0e62355cd5496761d6e68f1e865ac6fad \
104 --hash=sha256:efe46167eb02ba85d9c2e993635e7543e1e04bb3261112e9d54daff2385ae5df
97 # via -r contrib/packaging/requirements-windows.txt.in
105 # via -r contrib/packaging/requirements-windows.txt.in
98 fuzzywuzzy==0.18.0 \
106 fuzzywuzzy==0.18.0 \
99 --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8
107 --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8
@@ -113,9 +121,9 b' iniconfig==1.1.1 \\'
113 --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \
121 --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \
114 --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32
122 --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32
115 # via pytest
123 # via pytest
116 keyring==21.4.0 \
124 keyring==22.3.0 \
117 --hash=sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d \
125 --hash=sha256:16927a444b2c73f983520a48dec79ddab49fe76429ea05b8d528d778c8339522 \
118 --hash=sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466
126 --hash=sha256:2bc8363ebdd63886126a012057a85c8cb6e143877afa02619ac7dbc9f38a207b
119 # via -r contrib/packaging/requirements-windows.txt.in
127 # via -r contrib/packaging/requirements-windows.txt.in
120 multidict==5.1.0 \
128 multidict==5.1.0 \
121 --hash=sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a \
129 --hash=sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a \
@@ -172,7 +180,7 b' pycparser==2.21 \\'
172 --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
180 --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
173 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
181 --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
174 # via cffi
182 # via cffi
175 pygit2==1.7.1 ; python_version >= "3" \
183 pygit2==1.7.1 \
176 --hash=sha256:2c9e95efb86c0b32cc07c26be3d179e851ca4a7899c47fef63c4203963144f5e \
184 --hash=sha256:2c9e95efb86c0b32cc07c26be3d179e851ca4a7899c47fef63c4203963144f5e \
177 --hash=sha256:3ddacbf461652d3d4900382f821d9fbd5ae2dedecd7862b5245842419ad0ccba \
185 --hash=sha256:3ddacbf461652d3d4900382f821d9fbd5ae2dedecd7862b5245842419ad0ccba \
178 --hash=sha256:4cb0414df6089d0072ebe93ff2f34730737172dd5f0e72289567d06a6caf09c0 \
186 --hash=sha256:4cb0414df6089d0072ebe93ff2f34730737172dd5f0e72289567d06a6caf09c0 \
@@ -117,6 +117,7 b' import weakref'
117
117
118 from mercurial.i18n import _
118 from mercurial.i18n import _
119 from mercurial.node import hex
119 from mercurial.node import hex
120
120 from mercurial.pycompat import open
121 from mercurial.pycompat import open
121 from mercurial import (
122 from mercurial import (
122 context,
123 context,
@@ -131,6 +132,9 b' from mercurial import ('
131 scmutil,
132 scmutil,
132 util,
133 util,
133 )
134 )
135
136 # no-check-code because we're accessing private information only public in pure
137 from mercurial.pure import parsers
134 from mercurial import match as matchmod
138 from mercurial import match as matchmod
135 from mercurial.utils import (
139 from mercurial.utils import (
136 hashutil,
140 hashutil,
@@ -332,10 +336,22 b' def overridewalk(orig, self, match, subr'
332 # for better performance, directly access the inner dirstate map if the
336 # for better performance, directly access the inner dirstate map if the
333 # standard dirstate implementation is in use.
337 # standard dirstate implementation is in use.
334 dmap = dmap._map
338 dmap = dmap._map
339
340 has_mtime = parsers.DIRSTATE_V2_HAS_MTIME
341 mtime_is_ambiguous = parsers.DIRSTATE_V2_MTIME_SECOND_AMBIGUOUS
342 mask = has_mtime | mtime_is_ambiguous
343
344 # All entries that may not be clean
335 nonnormalset = {
345 nonnormalset = {
336 f
346 f
337 for f, e in self._map.items()
347 for f, e in self._map.items()
338 if e._v1_state() != b"n" or e._v1_mtime() == -1
348 if not e.maybe_clean
349 # same as "not has_time or has_ambiguous_time", but factored to only
350 # need a single access to flags for performance.
351 # `mask` removes all irrelevant bits, then we flip the `mtime` bit so
352 # its `true` value is NOT having a mtime, then check if either bit
353 # is set.
354 or bool((e.v2_data()[0] & mask) ^ has_mtime)
339 }
355 }
340
356
341 copymap = self._map.copymap
357 copymap = self._map.copymap
@@ -204,7 +204,9 b' class gitbmstore:'
204
204
205 @active.setter
205 @active.setter
206 def active(self, mark):
206 def active(self, mark):
207 githead = mark is not None and (_BMS_PREFIX + mark) or None
207 githead = None
208 if mark is not None:
209 githead = _BMS_PREFIX + pycompat.fsdecode(mark)
208 if githead is not None and githead not in self.gitrepo.references:
210 if githead is not None and githead not in self.gitrepo.references:
209 raise AssertionError(b'bookmark %s does not exist!' % mark)
211 raise AssertionError(b'bookmark %s does not exist!' % mark)
210
212
@@ -254,7 +256,7 b' class gitbmstore:'
254 )
256 )
255
257
256 def checkconflict(self, mark, force=False, target=None):
258 def checkconflict(self, mark, force=False, target=None):
257 githead = _BMS_PREFIX + mark
259 githead = _BMS_PREFIX + pycompat.fsdecode(mark)
258 cur = self.gitrepo.references['HEAD']
260 cur = self.gitrepo.references['HEAD']
259 if githead in self.gitrepo.references and not force:
261 if githead in self.gitrepo.references and not force:
260 if target:
262 if target:
@@ -330,7 +330,8 b' class gitdirstate:'
330 # TODO: figure out a strategy for saving index backups.
330 # TODO: figure out a strategy for saving index backups.
331 pass
331 pass
332
332
333 def set_tracked(self, f):
333 def set_tracked(self, f, reset_copy=False):
334 # TODO: support copies and reset_copy=True
334 uf = pycompat.fsdecode(f)
335 uf = pycompat.fsdecode(f)
335 if uf in self.git.index:
336 if uf in self.git.index:
336 return False
337 return False
@@ -282,6 +282,30 b' class changelog(baselog):'
282
282
283 return ancestor.incrementalmissingancestors(self.parentrevs, common)
283 return ancestor.incrementalmissingancestors(self.parentrevs, common)
284
284
285 def findmissingrevs(self, common=None, heads=None):
286 """Return the revision numbers of the ancestors of heads that
287 are not ancestors of common.
288
289 More specifically, return a list of revision numbers corresponding to
290 nodes N such that every N satisfies the following constraints:
291
292 1. N is an ancestor of some node in 'heads'
293 2. N is not an ancestor of any node in 'common'
294
295 The list is sorted by revision number, meaning it is
296 topologically sorted.
297
298 'heads' and 'common' are both lists of revision numbers. If heads is
299 not supplied, uses all of the revlog's heads. If common is not
300 supplied, uses nullid."""
301 if common is None:
302 common = [nullrev]
303 if heads is None:
304 heads = self.headrevs()
305
306 inc = self.incrementalmissingrevs(common=common)
307 return inc.missingancestors(heads)
308
285 def findmissing(self, common=None, heads=None):
309 def findmissing(self, common=None, heads=None):
286 """Return the ancestors of heads that are not ancestors of common.
310 """Return the ancestors of heads that are not ancestors of common.
287
311
@@ -1185,10 +1185,10 b' def debugdiscovery(ui, repo, remoteurl=b'
1185 """runs the changeset discovery protocol in isolation
1185 """runs the changeset discovery protocol in isolation
1186
1186
1187 The local peer can be "replaced" by a subset of the local repository by
1187 The local peer can be "replaced" by a subset of the local repository by
1188 using the `--local-as-revs` flag. Int he same way, usual `remote` peer can
1188 using the `--local-as-revs` flag. In the same way, the usual `remote` peer
1189 be "replaced" by a subset of the local repository using the
1189 can be "replaced" by a subset of the local repository using the
1190 `--local-as-revs` flag. This is useful to efficiently debug pathological
1190 `--remote-as-revs` flag. This is useful to efficiently debug pathological
1191 discovery situation.
1191 discovery situations.
1192
1192
1193 The following developer oriented config are relevant for people playing with this command:
1193 The following developer oriented config are relevant for people playing with this command:
1194
1194
@@ -1276,6 +1276,9 b' def debugdiscovery(ui, repo, remoteurl=b'
1276 if not util.safehasattr(remote, b'branches'):
1276 if not util.safehasattr(remote, b'branches'):
1277 # enable in-client legacy support
1277 # enable in-client legacy support
1278 remote = localrepo.locallegacypeer(remote.local())
1278 remote = localrepo.locallegacypeer(remote.local())
1279 if remote_revs:
1280 r = remote._repo.filtered(b'debug-discovery-remote-filter')
1281 remote._repo = r
1279 common, _in, hds = treediscovery.findcommonincoming(
1282 common, _in, hds = treediscovery.findcommonincoming(
1280 repo, remote, force=True, audit=data
1283 repo, remote, force=True, audit=data
1281 )
1284 )
@@ -1299,7 +1302,12 b' def debugdiscovery(ui, repo, remoteurl=b'
1299 revs = logcmdutil.revrange(repo, pushedrevs)
1302 revs = logcmdutil.revrange(repo, pushedrevs)
1300 nodes = [repo[r].node() for r in revs]
1303 nodes = [repo[r].node() for r in revs]
1301 common, any, hds = setdiscovery.findcommonheads(
1304 common, any, hds = setdiscovery.findcommonheads(
1302 ui, repo, remote, ancestorsof=nodes, audit=data
1305 ui,
1306 repo,
1307 remote,
1308 ancestorsof=nodes,
1309 audit=data,
1310 abortwhenunrelated=False,
1303 )
1311 )
1304 return common, hds
1312 return common, hds
1305
1313
@@ -1322,6 +1330,8 b' def debugdiscovery(ui, repo, remoteurl=b'
1322 common, hds = doit(localrevs, remoterevs)
1330 common, hds = doit(localrevs, remoterevs)
1323
1331
1324 # compute all statistics
1332 # compute all statistics
1333 if len(common) == 1 and repo.nullid in common:
1334 common = set()
1325 heads_common = set(common)
1335 heads_common = set(common)
1326 heads_remote = set(hds)
1336 heads_remote = set(hds)
1327 heads_local = set(repo.heads())
1337 heads_local = set(repo.heads())
@@ -1375,7 +1385,24 b' def debugdiscovery(ui, repo, remoteurl=b'
1375 # display discovery summary
1385 # display discovery summary
1376 fm.plain(b"elapsed time: %(elapsed)f seconds\n" % data)
1386 fm.plain(b"elapsed time: %(elapsed)f seconds\n" % data)
1377 fm.plain(b"round-trips: %(total-roundtrips)9d\n" % data)
1387 fm.plain(b"round-trips: %(total-roundtrips)9d\n" % data)
1388 if b'total-round-trips-heads' in data:
1389 fm.plain(
1390 b" round-trips-heads: %(total-round-trips-heads)9d\n" % data
1391 )
1392 if b'total-round-trips-branches' in data:
1393 fm.plain(
1394 b" round-trips-branches: %(total-round-trips-branches)9d\n"
1395 % data
1396 )
1397 if b'total-round-trips-between' in data:
1398 fm.plain(
1399 b" round-trips-between: %(total-round-trips-between)9d\n" % data
1400 )
1378 fm.plain(b"queries: %(total-queries)9d\n" % data)
1401 fm.plain(b"queries: %(total-queries)9d\n" % data)
1402 if b'total-queries-branches' in data:
1403 fm.plain(b" queries-branches: %(total-queries-branches)9d\n" % data)
1404 if b'total-queries-between' in data:
1405 fm.plain(b" queries-between: %(total-queries-between)9d\n" % data)
1379 fm.plain(b"heads summary:\n")
1406 fm.plain(b"heads summary:\n")
1380 fm.plain(b" total common heads: %(nb-common-heads)9d\n" % data)
1407 fm.plain(b" total common heads: %(nb-common-heads)9d\n" % data)
1381 fm.plain(b" also local heads: %(nb-common-heads-local)9d\n" % data)
1408 fm.plain(b" also local heads: %(nb-common-heads-local)9d\n" % data)
@@ -31,6 +31,7 b' from . import ('
31 )
31 )
32
32
33 from .dirstateutils import (
33 from .dirstateutils import (
34 docket as docketmod,
34 timestamp,
35 timestamp,
35 )
36 )
36
37
@@ -1433,6 +1434,27 b' class dirstate:'
1433 else:
1434 else:
1434 return self._filename
1435 return self._filename
1435
1436
1437 def data_backup_filename(self, backupname):
1438 if not self._use_dirstate_v2:
1439 return None
1440 return backupname + b'.v2-data'
1441
1442 def _new_backup_data_filename(self, backupname):
1443 """return a filename to backup a data-file or None"""
1444 if not self._use_dirstate_v2:
1445 return None
1446 data_filename = self._map.docket.data_filename()
1447 return data_filename, self.data_backup_filename(backupname)
1448
1449 def backup_data_file(self, backupname):
1450 if not self._use_dirstate_v2:
1451 return None
1452 docket = docketmod.DirstateDocket.parse(
1453 self._opener.read(backupname),
1454 self._nodeconstants,
1455 )
1456 return self.data_backup_filename(backupname), docket.data_filename()
1457
1436 def savebackup(self, tr, backupname):
1458 def savebackup(self, tr, backupname):
1437 '''Save current dirstate into backup file'''
1459 '''Save current dirstate into backup file'''
1438 filename = self._actualfilename(tr)
1460 filename = self._actualfilename(tr)
@@ -1472,6 +1494,19 b' class dirstate:'
1472 self._opener.join(backupname),
1494 self._opener.join(backupname),
1473 hardlink=True,
1495 hardlink=True,
1474 )
1496 )
1497 data_pair = self._new_backup_data_filename(backupname)
1498 if data_pair is not None:
1499 data_filename, bck_data_filename = data_pair
1500 util.copyfile(
1501 self._opener.join(data_filename),
1502 self._opener.join(bck_data_filename),
1503 hardlink=True,
1504 )
1505 if tr is not None:
1506 # ensure that pending file written above is unlinked at
1507 # failure, even if tr.writepending isn't invoked until the
1508 # end of this transaction
1509 tr.registertmp(bck_data_filename, location=b'plain')
1475
1510
1476 def restorebackup(self, tr, backupname):
1511 def restorebackup(self, tr, backupname):
1477 '''Restore dirstate by backup file'''
1512 '''Restore dirstate by backup file'''
@@ -1480,14 +1515,29 b' class dirstate:'
1480 self.invalidate()
1515 self.invalidate()
1481 filename = self._actualfilename(tr)
1516 filename = self._actualfilename(tr)
1482 o = self._opener
1517 o = self._opener
1518 data_pair = self.backup_data_file(backupname)
1483 if util.samefile(o.join(backupname), o.join(filename)):
1519 if util.samefile(o.join(backupname), o.join(filename)):
1484 o.unlink(backupname)
1520 o.unlink(backupname)
1485 else:
1521 else:
1486 o.rename(backupname, filename, checkambig=True)
1522 o.rename(backupname, filename, checkambig=True)
1487
1523
1524 if data_pair is not None:
1525 data_backup, target = data_pair
1526 if o.exists(target) and util.samefile(
1527 o.join(data_backup), o.join(target)
1528 ):
1529 o.unlink(data_backup)
1530 else:
1531 o.rename(data_backup, target, checkambig=True)
1532
1488 def clearbackup(self, tr, backupname):
1533 def clearbackup(self, tr, backupname):
1489 '''Clear backup file'''
1534 '''Clear backup file'''
1490 self._opener.unlink(backupname)
1535 o = self._opener
1536 data_backup = self.backup_data_file(backupname)
1537 o.unlink(backupname)
1538
1539 if data_backup is not None:
1540 o.unlink(data_backup[0])
1491
1541
1492 def verify(self, m1, m2):
1542 def verify(self, m1, m2):
1493 """check the dirstate content again the parent manifest and yield errors"""
1543 """check the dirstate content again the parent manifest and yield errors"""
@@ -115,8 +115,6 b' class _dirstatemapcommon:'
115 self.parents(), len(packed), meta
115 self.parents(), len(packed), meta
116 )
116 )
117 data_filename = new_docket.data_filename()
117 data_filename = new_docket.data_filename()
118 if tr:
119 tr.add(data_filename, 0)
120 self._opener.write(data_filename, packed)
118 self._opener.write(data_filename, packed)
121 # Write the new docket after the new data file has been
119 # Write the new docket after the new data file has been
122 # written. Because `st` was opened with `atomictemp=True`,
120 # written. Because `st` was opened with `atomictemp=True`,
@@ -2619,16 +2619,23 b' class localrepository:'
2619 return tr
2619 return tr
2620
2620
2621 def _journalfiles(self):
2621 def _journalfiles(self):
2622 return (
2622 first = (
2623 (self.svfs, b'journal'),
2623 (self.svfs, b'journal'),
2624 (self.svfs, b'journal.narrowspec'),
2624 (self.svfs, b'journal.narrowspec'),
2625 (self.vfs, b'journal.narrowspec.dirstate'),
2625 (self.vfs, b'journal.narrowspec.dirstate'),
2626 (self.vfs, b'journal.dirstate'),
2626 (self.vfs, b'journal.dirstate'),
2627 )
2628 middle = []
2629 dirstate_data = self.dirstate.data_backup_filename(b'journal.dirstate')
2630 if dirstate_data is not None:
2631 middle.append((self.vfs, dirstate_data))
2632 end = (
2627 (self.vfs, b'journal.branch'),
2633 (self.vfs, b'journal.branch'),
2628 (self.vfs, b'journal.desc'),
2634 (self.vfs, b'journal.desc'),
2629 (bookmarks.bookmarksvfs(self), b'journal.bookmarks'),
2635 (bookmarks.bookmarksvfs(self), b'journal.bookmarks'),
2630 (self.svfs, b'journal.phaseroots'),
2636 (self.svfs, b'journal.phaseroots'),
2631 )
2637 )
2638 return first + tuple(middle) + end
2632
2639
2633 def undofiles(self):
2640 def undofiles(self):
2634 return [(vfs, undoname(x)) for vfs, x in self._journalfiles()]
2641 return [(vfs, undoname(x)) for vfs, x in self._journalfiles()]
@@ -159,7 +159,7 b" ACTION_REMOVE = MergeAction(b'r', narrow"
159 ACTION_ADD = MergeAction(b'a', narrow_safe=True, changes=CHANGE_ADDED)
159 ACTION_ADD = MergeAction(b'a', narrow_safe=True, changes=CHANGE_ADDED)
160 ACTION_GET = MergeAction(b'g', narrow_safe=True, changes=CHANGE_MODIFIED)
160 ACTION_GET = MergeAction(b'g', narrow_safe=True, changes=CHANGE_MODIFIED)
161 ACTION_PATH_CONFLICT = MergeAction(b'p')
161 ACTION_PATH_CONFLICT = MergeAction(b'p')
162 ACTION_PATH_CONFLICT_RESOLVE = MergeAction('pr')
162 ACTION_PATH_CONFLICT_RESOLVE = MergeAction(b'pr')
163 ACTION_ADD_MODIFIED = MergeAction(
163 ACTION_ADD_MODIFIED = MergeAction(
164 b'am', narrow_safe=True, changes=CHANGE_ADDED
164 b'am', narrow_safe=True, changes=CHANGE_ADDED
165 ) # not 100% about the changes value here
165 ) # not 100% about the changes value here
@@ -38,7 +38,12 b' def findcommonincoming(repo, remote, hea'
38
38
39 if audit is not None:
39 if audit is not None:
40 audit[b'total-roundtrips'] = 1
40 audit[b'total-roundtrips'] = 1
41 audit[b'total-roundtrips-heads'] = 1
42 audit[b'total-roundtrips-branches'] = 0
43 audit[b'total-roundtrips-between'] = 0
41 audit[b'total-queries'] = 0
44 audit[b'total-queries'] = 0
45 audit[b'total-queries-branches'] = 0
46 audit[b'total-queries-between'] = 0
42
47
43 if repo.changelog.tip() == repo.nullid:
48 if repo.changelog.tip() == repo.nullid:
44 base.add(repo.nullid)
49 base.add(repo.nullid)
@@ -71,6 +76,9 b' def findcommonincoming(repo, remote, hea'
71 with remote.commandexecutor() as e:
76 with remote.commandexecutor() as e:
72 if audit is not None:
77 if audit is not None:
73 audit[b'total-queries'] += len(unknown)
78 audit[b'total-queries'] += len(unknown)
79 audit[b'total-queries-branches'] += len(unknown)
80 audit[b'total-roundtrips'] += 1
81 audit[b'total-roundtrips-branches'] += 1
74 branches = e.callcommand(b'branches', {b'nodes': unknown}).result()
82 branches = e.callcommand(b'branches', {b'nodes': unknown}).result()
75
83
76 unknown = collections.deque(branches)
84 unknown = collections.deque(branches)
@@ -110,16 +118,20 b' def findcommonincoming(repo, remote, hea'
110 seen.add(n[0])
118 seen.add(n[0])
111
119
112 if r:
120 if r:
113 reqcnt += 1
114 progress.increment()
115 repo.ui.debug(
116 b"request %d: %s\n" % (reqcnt, b" ".join(map(short, r)))
117 )
118 for p in range(0, len(r), 10):
121 for p in range(0, len(r), 10):
122 reqcnt += 1
123 progress.increment()
124 if repo.ui.debugflag:
125 msg = b"request %d: %s\n"
126 msg %= (reqcnt, b" ".join(map(short, r)))
127 repo.ui.debug(msg)
119 with remote.commandexecutor() as e:
128 with remote.commandexecutor() as e:
120 subset = r[p : p + 10]
129 subset = r[p : p + 10]
121 if audit is not None:
130 if audit is not None:
122 audit[b'total-queries'] += len(subset)
131 audit[b'total-queries'] += len(subset)
132 audit[b'total-queries-branches'] += len(subset)
133 audit[b'total-roundtrips'] += 1
134 audit[b'total-roundtrips-branches'] += 1
123 branches = e.callcommand(
135 branches = e.callcommand(
124 b'branches',
136 b'branches',
125 {
137 {
@@ -142,6 +154,9 b' def findcommonincoming(repo, remote, hea'
142 with remote.commandexecutor() as e:
154 with remote.commandexecutor() as e:
143 if audit is not None:
155 if audit is not None:
144 audit[b'total-queries'] += len(search)
156 audit[b'total-queries'] += len(search)
157 audit[b'total-queries-between'] += len(search)
158 audit[b'total-roundtrips'] += 1
159 audit[b'total-roundtrips-between'] += 1
145 between = e.callcommand(b'between', {b'pairs': search}).result()
160 between = e.callcommand(b'between', {b'pairs': search}).result()
146
161
147 for n, l in zip(search, between):
162 for n, l in zip(search, between):
@@ -187,7 +202,5 b' def findcommonincoming(repo, remote, hea'
187
202
188 progress.complete()
203 progress.complete()
189 repo.ui.debug(b"%d total queries\n" % reqcnt)
204 repo.ui.debug(b"%d total queries\n" % reqcnt)
190 if audit is not None:
191 audit[b'total-roundtrips'] = reqcnt
192
205
193 return base, list(fetch), heads
206 return base, list(fetch), heads
@@ -222,22 +222,12 b' dependencies = ['
222
222
223 [[package]]
223 [[package]]
224 name = "crossbeam-channel"
224 name = "crossbeam-channel"
225 version = "0.4.4"
226 source = "registry+https://github.com/rust-lang/crates.io-index"
227 checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
228 dependencies = [
229 "crossbeam-utils 0.7.2",
230 "maybe-uninit",
231 ]
232
233 [[package]]
234 name = "crossbeam-channel"
235 version = "0.5.2"
225 version = "0.5.2"
236 source = "registry+https://github.com/rust-lang/crates.io-index"
226 source = "registry+https://github.com/rust-lang/crates.io-index"
237 checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
227 checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
238 dependencies = [
228 dependencies = [
239 "cfg-if 1.0.0",
229 "cfg-if 1.0.0",
240 "crossbeam-utils 0.8.1",
230 "crossbeam-utils",
241 ]
231 ]
242
232
243 [[package]]
233 [[package]]
@@ -248,7 +238,7 b' checksum = "94af6efb46fef72616855b036a62'
248 dependencies = [
238 dependencies = [
249 "cfg-if 1.0.0",
239 "cfg-if 1.0.0",
250 "crossbeam-epoch",
240 "crossbeam-epoch",
251 "crossbeam-utils 0.8.1",
241 "crossbeam-utils",
252 ]
242 ]
253
243
254 [[package]]
244 [[package]]
@@ -259,7 +249,7 b' checksum = "a1aaa739f95311c2c7887a76863f'
259 dependencies = [
249 dependencies = [
260 "cfg-if 1.0.0",
250 "cfg-if 1.0.0",
261 "const_fn",
251 "const_fn",
262 "crossbeam-utils 0.8.1",
252 "crossbeam-utils",
263 "lazy_static",
253 "lazy_static",
264 "memoffset",
254 "memoffset",
265 "scopeguard",
255 "scopeguard",
@@ -267,17 +257,6 b' dependencies = ['
267
257
268 [[package]]
258 [[package]]
269 name = "crossbeam-utils"
259 name = "crossbeam-utils"
270 version = "0.7.2"
271 source = "registry+https://github.com/rust-lang/crates.io-index"
272 checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
273 dependencies = [
274 "autocfg",
275 "cfg-if 0.1.10",
276 "lazy_static",
277 ]
278
279 [[package]]
280 name = "crossbeam-utils"
281 version = "0.8.1"
260 version = "0.8.1"
282 source = "registry+https://github.com/rust-lang/crates.io-index"
261 source = "registry+https://github.com/rust-lang/crates.io-index"
283 checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
262 checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
@@ -476,7 +455,7 b' dependencies = ['
476 "byteorder",
455 "byteorder",
477 "bytes-cast",
456 "bytes-cast",
478 "clap",
457 "clap",
479 "crossbeam-channel 0.4.4",
458 "crossbeam-channel",
480 "derive_more",
459 "derive_more",
481 "flate2",
460 "flate2",
482 "format-bytes",
461 "format-bytes",
@@ -488,7 +467,7 b' dependencies = ['
488 "libc",
467 "libc",
489 "log",
468 "log",
490 "memmap2",
469 "memmap2",
491 "micro-timer 0.3.1",
470 "micro-timer",
492 "ouroboros",
471 "ouroboros",
493 "pretty_assertions",
472 "pretty_assertions",
494 "rand 0.8.5",
473 "rand 0.8.5",
@@ -508,7 +487,7 b' name = "hg-cpython"'
508 version = "0.1.0"
487 version = "0.1.0"
509 dependencies = [
488 dependencies = [
510 "cpython",
489 "cpython",
511 "crossbeam-channel 0.5.2",
490 "crossbeam-channel",
512 "env_logger",
491 "env_logger",
513 "hg-core",
492 "hg-core",
514 "libc",
493 "libc",
@@ -621,12 +600,6 b' dependencies = ['
621 ]
600 ]
622
601
623 [[package]]
602 [[package]]
624 name = "maybe-uninit"
625 version = "2.0.0"
626 source = "registry+https://github.com/rust-lang/crates.io-index"
627 checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
628
629 [[package]]
630 name = "memchr"
603 name = "memchr"
631 version = "2.4.1"
604 version = "2.4.1"
632 source = "registry+https://github.com/rust-lang/crates.io-index"
605 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -634,9 +607,9 b' checksum = "308cc39be01b73d0d18f82a0e7b2'
634
607
635 [[package]]
608 [[package]]
636 name = "memmap2"
609 name = "memmap2"
637 version = "0.4.0"
610 version = "0.5.7"
638 source = "registry+https://github.com/rust-lang/crates.io-index"
611 source = "registry+https://github.com/rust-lang/crates.io-index"
639 checksum = "de5d3112c080d58ce560081baeaab7e1e864ca21795ddbf533d5b1842bb1ecf8"
612 checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498"
640 dependencies = [
613 dependencies = [
641 "libc",
614 "libc",
642 "stable_deref_trait",
615 "stable_deref_trait",
@@ -653,38 +626,16 b' dependencies = ['
653
626
654 [[package]]
627 [[package]]
655 name = "micro-timer"
628 name = "micro-timer"
656 version = "0.3.1"
657 source = "registry+https://github.com/rust-lang/crates.io-index"
658 checksum = "2620153e1d903d26b72b89f0e9c48d8c4756cba941c185461dddc234980c298c"
659 dependencies = [
660 "micro-timer-macros 0.3.1",
661 "scopeguard",
662 ]
663
664 [[package]]
665 name = "micro-timer"
666 version = "0.4.0"
629 version = "0.4.0"
667 source = "registry+https://github.com/rust-lang/crates.io-index"
630 source = "registry+https://github.com/rust-lang/crates.io-index"
668 checksum = "5de32cb59a062672560d6f0842c4aa7714727457b9fe2daf8987d995a176a405"
631 checksum = "5de32cb59a062672560d6f0842c4aa7714727457b9fe2daf8987d995a176a405"
669 dependencies = [
632 dependencies = [
670 "micro-timer-macros 0.4.0",
633 "micro-timer-macros",
671 "scopeguard",
634 "scopeguard",
672 ]
635 ]
673
636
674 [[package]]
637 [[package]]
675 name = "micro-timer-macros"
638 name = "micro-timer-macros"
676 version = "0.3.1"
677 source = "registry+https://github.com/rust-lang/crates.io-index"
678 checksum = "e28a3473e6abd6e9aab36aaeef32ad22ae0bd34e79f376643594c2b152ec1c5d"
679 dependencies = [
680 "proc-macro2",
681 "quote",
682 "scopeguard",
683 "syn",
684 ]
685
686 [[package]]
687 name = "micro-timer-macros"
688 version = "0.4.0"
639 version = "0.4.0"
689 source = "registry+https://github.com/rust-lang/crates.io-index"
640 source = "registry+https://github.com/rust-lang/crates.io-index"
690 checksum = "cee948b94700125b52dfb68dd17c19f6326696c1df57f92c05ee857463c93ba1"
641 checksum = "cee948b94700125b52dfb68dd17c19f6326696c1df57f92c05ee857463c93ba1"
@@ -973,9 +924,9 b' version = "1.9.1"'
973 source = "registry+https://github.com/rust-lang/crates.io-index"
924 source = "registry+https://github.com/rust-lang/crates.io-index"
974 checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
925 checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
975 dependencies = [
926 dependencies = [
976 "crossbeam-channel 0.5.2",
927 "crossbeam-channel",
977 "crossbeam-deque",
928 "crossbeam-deque",
978 "crossbeam-utils 0.8.1",
929 "crossbeam-utils",
979 "lazy_static",
930 "lazy_static",
980 "num_cpus",
931 "num_cpus",
981 ]
932 ]
@@ -1029,7 +980,7 b' dependencies = ['
1029 "home",
980 "home",
1030 "lazy_static",
981 "lazy_static",
1031 "log",
982 "log",
1032 "micro-timer 0.4.0",
983 "micro-timer",
1033 "regex",
984 "regex",
1034 "users",
985 "users",
1035 "which",
986 "which",
@@ -29,10 +29,10 b' sha-1 = "0.10.0"'
29 twox-hash = "1.6.2"
29 twox-hash = "1.6.2"
30 same-file = "1.0.6"
30 same-file = "1.0.6"
31 tempfile = "3.1.0"
31 tempfile = "3.1.0"
32 crossbeam-channel = "0.4"
32 crossbeam-channel = "0.5.0"
33 micro-timer = "0.3.0"
33 micro-timer = "0.4.0"
34 log = "0.4.8"
34 log = "0.4.8"
35 memmap2 = {version = "0.4", features = ["stable_deref_trait"]}
35 memmap2 = { version = "0.5.3", features = ["stable_deref_trait"] }
36 zstd = "0.5.3"
36 zstd = "0.5.3"
37 format-bytes = "0.3.0"
37 format-bytes = "0.3.0"
38
38
@@ -728,9 +728,9 b" impl<'a, 'tree, 'on_disk> StatusCommon<'"
728 );
728 );
729 })
729 })
730 }
730 }
731 }
731 if self.options.collect_traversed_dirs {
732 if self.options.collect_traversed_dirs {
732 self.outcome.lock().unwrap().traversed.push(hg_path.into())
733 self.outcome.lock().unwrap().traversed.push(hg_path.into())
733 }
734 }
734 }
735 is_ignored
735 is_ignored
736 } else {
736 } else {
@@ -791,7 +791,7 b" impl<'a> IncludeMatcher<'a> {"
791 dirs,
791 dirs,
792 parents,
792 parents,
793 } = roots_dirs_and_parents(&ignore_patterns)?;
793 } = roots_dirs_and_parents(&ignore_patterns)?;
794 let prefix = ignore_patterns.iter().any(|k| match k.syntax {
794 let prefix = ignore_patterns.iter().all(|k| match k.syntax {
795 PatternSyntax::Path | PatternSyntax::RelPath => true,
795 PatternSyntax::Path | PatternSyntax::RelPath => true,
796 _ => false,
796 _ => false,
797 });
797 });
@@ -1094,6 +1094,31 b' mod tests {'
1094 matcher.visit_children_set(HgPath::new(b"dir/subdir/x")),
1094 matcher.visit_children_set(HgPath::new(b"dir/subdir/x")),
1095 VisitChildrenSet::This
1095 VisitChildrenSet::This
1096 );
1096 );
1097
1098 // Test multiple patterns
1099 let matcher = IncludeMatcher::new(vec![
1100 IgnorePattern::new(PatternSyntax::RelPath, b"foo", Path::new("")),
1101 IgnorePattern::new(PatternSyntax::Glob, b"g*", Path::new("")),
1102 ])
1103 .unwrap();
1104
1105 assert_eq!(
1106 matcher.visit_children_set(HgPath::new(b"")),
1107 VisitChildrenSet::This
1108 );
1109
1110 // Test multiple patterns
1111 let matcher = IncludeMatcher::new(vec![IgnorePattern::new(
1112 PatternSyntax::Glob,
1113 b"**/*.exe",
1114 Path::new(""),
1115 )])
1116 .unwrap();
1117
1118 assert_eq!(
1119 matcher.visit_children_set(HgPath::new(b"")),
1120 VisitChildrenSet::This
1121 );
1097 }
1122 }
1098
1123
1099 #[test]
1124 #[test]
@@ -30,6 +30,7 b' New errors are not allowed. Warnings are'
30 Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob)
30 Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob)
31 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob)
31 Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob)
32 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob)
32 Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob)
33 Skipping hgext/fsmonitor/__init__.py it has no-che?k-code (glob)
33 Skipping i18n/polib.py it has no-che?k-code (glob)
34 Skipping i18n/polib.py it has no-che?k-code (glob)
34 Skipping mercurial/statprof.py it has no-che?k-code (glob)
35 Skipping mercurial/statprof.py it has no-che?k-code (glob)
35 Skipping tests/testlib/badserverext.py it has no-che?k-code (glob)
36 Skipping tests/testlib/badserverext.py it has no-che?k-code (glob)
@@ -213,4 +213,35 b' Check that unused bytes counter is reset'
213
213
214 #endif
214 #endif
215
215
216 $ cd ..
216 Transaction compatibility
217 -------------------------
218
219 The transaction preserves the dirstate.
220 We should make sure all of it (docket + data) is preserved
221
222 #if dirstate-v2
223 $ hg commit -m 'bli'
224 #endif
225
226 $ hg update --quiet
227 $ hg revert --all --quiet
228 $ rm -f a
229 $ echo foo > foo
230 $ hg add foo
231 $ hg commit -m foo
232
233 #if dirstate-v2
234 $ uid=$(find_dirstate_uuid)
235 $ touch bar
236 $ while [ uid = $(find_dirstate_uuid) ]; do
237 > hg add bar;
238 > hg remove bar;
239 > done;
240 $ rm bar
241 #endif
242 $ hg rollback
243 repository tip rolled back to revision 1 (undo commit)
244 working directory now based on revision 1
245
246 $ hg status
247 A foo
@@ -119,6 +119,10 b' Log works too:'
119 and bookmarks:
119 and bookmarks:
120 $ hg bookmarks
120 $ hg bookmarks
121 * master 1:3d9be8deba43
121 * master 1:3d9be8deba43
122 $ hg up master
123 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
124 $ hg bookmarks
125 * master 1:3d9be8deba43
122
126
123 diff even works transparently in both systems:
127 diff even works transparently in both systems:
124 $ echo blah >> alpha
128 $ echo blah >> alpha
@@ -421,5 +425,8 b' This covers changelog.headrevs() with a '
421 7[tip][master] 1a0fee76bfc4 1970-01-01 00:00 +0000 test
425 7[tip][master] 1a0fee76bfc4 1970-01-01 00:00 +0000 test
422 remove beta
426 remove beta
423
427
424
428 This covers revlog.findmissingrevs() (issue6472)
425
429 $ hg log -r 'last(only(master))' -Tcompact
430 7[tip][master] 1a0fee76bfc4 1970-01-01 00:00 +0000 test
431 remove beta
432
@@ -177,14 +177,7 b" It's a tarball because unbundle might ma"
177 $ cd ..
177 $ cd ..
178 $ mkdir repo-to-fix
178 $ mkdir repo-to-fix
179 $ cd repo-to-fix
179 $ cd repo-to-fix
180 #if windows
180 $ tar -x < $TESTDIR/bundles/issue6528.tar
181 tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
182 only since some versions of tar don't have this flag.
183
184 $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
185 #else
186 $ tar xf $TESTDIR/bundles/issue6528.tar
187 #endif
188
181
189 Check that the issue is present
182 Check that the issue is present
190 (It is currently not present with rhg but will be when optimizations are added
183 (It is currently not present with rhg but will be when optimizations are added
@@ -285,14 +278,7 b' Try the using the report options'
285 $ cd ..
278 $ cd ..
286 $ mkdir repo-to-fix-report
279 $ mkdir repo-to-fix-report
287 $ cd repo-to-fix
280 $ cd repo-to-fix
288 #if windows
281 $ tar -x < "$TESTDIR"/bundles/issue6528.tar
289 tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
290 only since some versions of tar don't have this flag.
291
292 $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
293 #else
294 $ tar xf $TESTDIR/bundles/issue6528.tar
295 #endif
296
282
297 $ hg debug-repair-issue6528 --to-report $TESTTMP/report.txt
283 $ hg debug-repair-issue6528 --to-report $TESTTMP/report.txt
298 found affected revision 1 for filelog 'data/D.txt.i'
284 found affected revision 1 for filelog 'data/D.txt.i'
@@ -379,14 +365,7 b' Try it with a non-inline revlog'
379
365
380 $ mkdir repo-to-fix-not-inline
366 $ mkdir repo-to-fix-not-inline
381 $ cd repo-to-fix-not-inline
367 $ cd repo-to-fix-not-inline
382 #if windows
368 $ tar -x < "$TESTDIR"/bundles/issue6528.tar
383 tar interprets `:` in paths (like `C:`) as being remote, force local on Windows
384 only since some versions of tar don't have this flag.
385
386 $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar
387 #else
388 $ tar xf $TESTDIR/bundles/issue6528.tar
389 #endif
390 $ echo b >> b.txt
369 $ echo b >> b.txt
391 $ hg commit -qm "inline -> separate"
370 $ hg commit -qm "inline -> separate"
392 $ find .hg -name *b.txt.d
371 $ find .hg -name *b.txt.d
@@ -27,8 +27,6 b' Dummy extension simulating unsafe long r'
27 > with ui.uninterruptible():
27 > with ui.uninterruptible():
28 > testing.write_file(sync_file, b'%d' % os.getpid())
28 > testing.write_file(sync_file, b'%d' % os.getpid())
29 > testing.wait_file(done_file)
29 > testing.wait_file(done_file)
30 > # make sure we get rescheduled and the signal get a chance to be handled
31 > time.sleep(0.1)
32 > ui.warn(b"end of unsafe operation\n")
30 > ui.warn(b"end of unsafe operation\n")
33 > ui.warn(b"%d second(s) passed\n" % int(time.time() - start))
31 > ui.warn(b"%d second(s) passed\n" % int(time.time() - start))
34 > EOF
32 > EOF
@@ -42,14 +40,26 b' Dummy extension simulating unsafe long r'
42 > fi
40 > fi
43 > "$RUNTESTDIR/testlib/wait-on-file" 10 "$SYNC_FILE" || exit 2
41 > "$RUNTESTDIR/testlib/wait-on-file" 10 "$SYNC_FILE" || exit 2
44 > kill -s \$SIG \`cat "$SYNC_FILE"\`
42 > kill -s \$SIG \`cat "$SYNC_FILE"\`
45 > sleep 1
46 > touch "$DONE_FILE"
47 > EOF
43 > EOF
48
44
49 #if no-windows
45 #if no-windows
50 $ chmod +x send-signal.sh
46 $ chmod +x send-signal.sh
51 #endif
47 #endif
52
48
49 $ cat > wait-signal.sh << 'EOF'
50 > #!/bin/sh
51 > (hg wait-signal 2>&1; echo [$?]) | {
52 > read line
53 > touch "$DONE_FILE"
54 > echo "$line"
55 > cat
56 > }
57 > EOF
58
59 #if no-windows
60 $ chmod +x wait-signal.sh
61 #endif
62
53 Kludge to emulate timeout(1) which is not generally available.
63 Kludge to emulate timeout(1) which is not generally available.
54
64
55 Set up repository
65 Set up repository
@@ -60,11 +70,10 b' Set up repository'
60 > wait_ext = $TESTTMP/wait_ext.py
70 > wait_ext = $TESTTMP/wait_ext.py
61 > EOF
71 > EOF
62
72
63
64 Test ctrl-c
73 Test ctrl-c
65 $ rm -f $SYNC_FILE $DONE_FILE
74 $ rm -f $SYNC_FILE $DONE_FILE
66 $ sh -c "../send-signal.sh INT" &
75 $ sh -c "../send-signal.sh INT" &
67 $ hg wait-signal
76 $ ../wait-signal.sh
68 interrupted!
77 interrupted!
69 [255]
78 [255]
70
79
@@ -75,7 +84,7 b' Test ctrl-c'
75
84
76 $ rm -f $SYNC_FILE $DONE_FILE
85 $ rm -f $SYNC_FILE $DONE_FILE
77 $ sh -c "../send-signal.sh INT" &
86 $ sh -c "../send-signal.sh INT" &
78 $ hg wait-signal
87 $ ../wait-signal.sh
79 interrupted!
88 interrupted!
80 [255]
89 [255]
81
90
@@ -86,7 +95,7 b' Test ctrl-c'
86
95
87 $ rm -f $SYNC_FILE $DONE_FILE
96 $ rm -f $SYNC_FILE $DONE_FILE
88 $ sh -c "../send-signal.sh INT" &
97 $ sh -c "../send-signal.sh INT" &
89 $ hg wait-signal
98 $ ../wait-signal.sh
90 shutting down cleanly
99 shutting down cleanly
91 press ^C again to terminate immediately (dangerous)
100 press ^C again to terminate immediately (dangerous)
92 end of unsafe operation
101 end of unsafe operation
@@ -73,7 +73,7 b' This is what we did to produce the repo '
73 - hg commit -Am_
73 - hg commit -Am_
74 - remove some cache files
74 - remove some cache files
75
75
76 $ tar --force-local -xf "$TESTDIR"/bundles/test-revlog-diff-relative-to-nullrev.tar
76 $ tar -x < "$TESTDIR"/bundles/test-revlog-diff-relative-to-nullrev.tar
77 $ cd nullrev-diff
77 $ cd nullrev-diff
78 $ hg debugdeltachain a
78 $ hg debugdeltachain a
79 rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
79 rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks
@@ -361,7 +361,7 b' The blackbox extension is supported'
361 $ echo "maxsize = 1" >> $HGRCPATH
361 $ echo "maxsize = 1" >> $HGRCPATH
362 $ $NO_FALLBACK rhg files > /dev/null
362 $ $NO_FALLBACK rhg files > /dev/null
363 $ cat .hg/blackbox.log
363 $ cat .hg/blackbox.log
364 ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files exited 0 after 0.??? seconds (glob)
364 ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files exited 0 after * seconds (glob)
365 $ cat .hg/blackbox.log.1
365 $ cat .hg/blackbox.log.1
366 ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files (glob)
366 ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files (glob)
367
367
@@ -44,8 +44,10 b' Small superset:'
44 searching for changes
44 searching for changes
45 unpruned common: 01241442b3c2 66f7d451a68b b5714e113bc0
45 unpruned common: 01241442b3c2 66f7d451a68b b5714e113bc0
46 elapsed time: * seconds (glob)
46 elapsed time: * seconds (glob)
47 round-trips: 2
47 round-trips: 4
48 queries: 6
48 queries: 6
49 queries-branches: 2
50 queries-between: 4
49 heads summary:
51 heads summary:
50 total common heads: 2
52 total common heads: 2
51 also local heads: 2
53 also local heads: 2
@@ -144,6 +146,8 b' Small superset:'
144 elapsed time: * seconds (glob)
146 elapsed time: * seconds (glob)
145 round-trips: 1
147 round-trips: 1
146 queries: 0
148 queries: 0
149 queries-branches: 0
150 queries-between: 0
147 heads summary:
151 heads summary:
148 total common heads: 2
152 total common heads: 2
149 also local heads: 1
153 also local heads: 1
@@ -247,8 +251,10 b' Many new:'
247 searching for changes
251 searching for changes
248 unpruned common: bebd167eb94d
252 unpruned common: bebd167eb94d
249 elapsed time: * seconds (glob)
253 elapsed time: * seconds (glob)
250 round-trips: 2
254 round-trips: 4
251 queries: 3
255 queries: 3
256 queries-branches: 1
257 queries-between: 2
252 heads summary:
258 heads summary:
253 total common heads: 1
259 total common heads: 1
254 also local heads: 1
260 also local heads: 1
@@ -351,8 +357,10 b' Many new:'
351 searching for changes
357 searching for changes
352 unpruned common: 66f7d451a68b bebd167eb94d
358 unpruned common: 66f7d451a68b bebd167eb94d
353 elapsed time: * seconds (glob)
359 elapsed time: * seconds (glob)
354 round-trips: 4
360 round-trips: 6
355 queries: 5
361 queries: 5
362 queries-branches: 1
363 queries-between: 4
356 heads summary:
364 heads summary:
357 total common heads: 1
365 total common heads: 1
358 also local heads: 0
366 also local heads: 0
@@ -461,8 +469,10 b' Both sides many new with stub:'
461 searching for changes
469 searching for changes
462 unpruned common: 2dc09a01254d
470 unpruned common: 2dc09a01254d
463 elapsed time: * seconds (glob)
471 elapsed time: * seconds (glob)
464 round-trips: 4
472 round-trips: 6
465 queries: 5
473 queries: 5
474 queries-branches: 1
475 queries-between: 4
466 heads summary:
476 heads summary:
467 total common heads: 1
477 total common heads: 1
468 also local heads: 1
478 also local heads: 1
@@ -565,8 +575,10 b' Both sides many new with stub:'
565 searching for changes
575 searching for changes
566 unpruned common: 2dc09a01254d 66f7d451a68b
576 unpruned common: 2dc09a01254d 66f7d451a68b
567 elapsed time: * seconds (glob)
577 elapsed time: * seconds (glob)
568 round-trips: 4
578 round-trips: 6
569 queries: 5
579 queries: 5
580 queries-branches: 1
581 queries-between: 4
570 heads summary:
582 heads summary:
571 total common heads: 1
583 total common heads: 1
572 also local heads: 0
584 also local heads: 0
@@ -676,8 +688,10 b' Both many new:'
676 searching for changes
688 searching for changes
677 unpruned common: 66f7d451a68b
689 unpruned common: 66f7d451a68b
678 elapsed time: * seconds (glob)
690 elapsed time: * seconds (glob)
679 round-trips: 4
691 round-trips: 6
680 queries: 5
692 queries: 5
693 queries-branches: 1
694 queries-between: 4
681 heads summary:
695 heads summary:
682 total common heads: 1
696 total common heads: 1
683 also local heads: 0
697 also local heads: 0
@@ -780,8 +794,10 b' Both many new:'
780 searching for changes
794 searching for changes
781 unpruned common: 66f7d451a68b
795 unpruned common: 66f7d451a68b
782 elapsed time: * seconds (glob)
796 elapsed time: * seconds (glob)
783 round-trips: 4
797 round-trips: 6
784 queries: 5
798 queries: 5
799 queries-branches: 1
800 queries-between: 4
785 heads summary:
801 heads summary:
786 total common heads: 1
802 total common heads: 1
787 also local heads: 0
803 also local heads: 0
@@ -891,8 +907,10 b' Both many new skewed:'
891 searching for changes
907 searching for changes
892 unpruned common: 66f7d451a68b
908 unpruned common: 66f7d451a68b
893 elapsed time: * seconds (glob)
909 elapsed time: * seconds (glob)
894 round-trips: 4
910 round-trips: 6
895 queries: 5
911 queries: 5
912 queries-branches: 1
913 queries-between: 4
896 heads summary:
914 heads summary:
897 total common heads: 1
915 total common heads: 1
898 also local heads: 0
916 also local heads: 0
@@ -995,8 +1013,10 b' Both many new skewed:'
995 searching for changes
1013 searching for changes
996 unpruned common: 66f7d451a68b
1014 unpruned common: 66f7d451a68b
997 elapsed time: * seconds (glob)
1015 elapsed time: * seconds (glob)
998 round-trips: 3
1016 round-trips: 5
999 queries: 4
1017 queries: 4
1018 queries-branches: 1
1019 queries-between: 3
1000 heads summary:
1020 heads summary:
1001 total common heads: 1
1021 total common heads: 1
1002 also local heads: 0
1022 also local heads: 0
@@ -1106,8 +1126,10 b' Both many new on top of long history:'
1106 searching for changes
1126 searching for changes
1107 unpruned common: 7ead0cba2838
1127 unpruned common: 7ead0cba2838
1108 elapsed time: * seconds (glob)
1128 elapsed time: * seconds (glob)
1109 round-trips: 4
1129 round-trips: 6
1110 queries: 5
1130 queries: 5
1131 queries-branches: 1
1132 queries-between: 4
1111 heads summary:
1133 heads summary:
1112 total common heads: 1
1134 total common heads: 1
1113 also local heads: 0
1135 also local heads: 0
@@ -1216,8 +1238,10 b' Both many new on top of long history:'
1216 searching for changes
1238 searching for changes
1217 unpruned common: 7ead0cba2838
1239 unpruned common: 7ead0cba2838
1218 elapsed time: * seconds (glob)
1240 elapsed time: * seconds (glob)
1219 round-trips: 3
1241 round-trips: 5
1220 queries: 4
1242 queries: 4
1243 queries-branches: 1
1244 queries-between: 3
1221 heads summary:
1245 heads summary:
1222 total common heads: 1
1246 total common heads: 1
1223 also local heads: 0
1247 also local heads: 0
General Comments 0
You need to be logged in to leave comments. Login now