# HG changeset patch # User Raphaël Gomès # Date 1662043886 -7200 # Node ID f59e49f6bee4591763ccdad9cf0d7fb2c5b130c7 # Parent 5acbc550d9875a1740cfcb503754cfd54ec1eb9a# Parent eb800db3d9cfda4df86ce79bf789a29405da9607 branching: merge stable into default diff -r 5acbc550d987 -r f59e49f6bee4 .hgsigs --- a/.hgsigs Sun Jun 05 07:16:29 2022 +0200 +++ b/.hgsigs Thu Sep 01 16:51:26 2022 +0200 @@ -231,3 +231,5 @@ 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 diff -r 5acbc550d987 -r f59e49f6bee4 .hgtags --- a/.hgtags Sun Jun 05 07:16:29 2022 +0200 +++ b/.hgtags Thu Sep 01 16:51:26 2022 +0200 @@ -244,3 +244,5 @@ 0cc5f74ff7f0f4ac2427096bddbe102dbc2453ae 6.1.4 288de6f5d724bba7bf1669e2838f196962bb7528 6.2rc0 094a5fa3cf52f936e0de3f1e507c818bee5ece6b 6.2 +f69bffd00abe3a1b94d1032eb2c92e611d16a192 6.2.1 +b5c8524827d20fe2e0ca8fb1234a0fe35a1a36c7 6.2.2 diff -r 5acbc550d987 -r f59e49f6bee4 contrib/automation/hgautomation/aws.py --- a/contrib/automation/hgautomation/aws.py Sun Jun 05 07:16:29 2022 +0200 +++ b/contrib/automation/hgautomation/aws.py Thu Sep 01 16:51:26 2022 +0200 @@ -59,7 +59,7 @@ UBUNTU_ACCOUNT_ID = '099720109477' -WINDOWS_BASE_IMAGE_NAME = 'Windows_Server-2019-English-Full-Base-*' +WINDOWS_BASE_IMAGE_NAME = 'Windows_Server-2022-English-Full-Base-*' KEY_PAIRS = { @@ -174,6 +174,23 @@ net user Administrator "%s" wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE +# And set it via EC2Launch so it persists across reboots. +$config = & $env:ProgramFiles\Amazon\EC2Launch\EC2Launch.exe get-agent-config --format json | ConvertFrom-Json +$config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml +$setAdminAccount = @" +{ + "task": "setAdminAccount", + "inputs": { + "password": { + "type": "static", + "data": "%s" + } + } +} +"@ +$config.config | %%{if($_.stage -eq 'preReady'){$_.tasks += (ConvertFrom-Json -InputObject $setAdminAccount)}} +$config | ConvertTo-Json -Depth 6 | Out-File -encoding UTF8 $env:ProgramData/Amazon/EC2Launch/config/agent-config.yml + # First, make sure WinRM can't be connected to netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" new enable=yes action=block @@ -752,7 +769,7 @@ ) if bootstrap: - config['UserData'] = WINDOWS_USER_DATA % password + config['UserData'] = WINDOWS_USER_DATA % (password, password) with temporary_ec2_instances(c.ec2resource, config) as instances: wait_for_ip_addresses(instances) @@ -1173,28 +1190,16 @@ with INSTALL_WINDOWS_DEPENDENCIES.open('r', encoding='utf-8') as fh: commands.extend(l.rstrip() for l in fh) - # Schedule run of EC2Launch on next boot. This ensures that UserData - # is executed. - # We disable setComputerName because it forces a reboot. - # We set an explicit admin password because this causes UserData to run - # as Administrator instead of System. - commands.extend( - [ - r'''Set-Content -Path C:\ProgramData\Amazon\EC2-Windows\Launch\Config\LaunchConfig.json ''' - r'''-Value '{"setComputerName": false, "setWallpaper": true, "addDnsSuffixList": true, ''' - r'''"extendBootVolumeSize": true, "handleUserData": true, ''' - r'''"adminPasswordType": "Specify", "adminPassword": "%s"}' ''' - % c.automation.default_password(), - r'C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 ' - r'–Schedule', - ] - ) - # Disable Windows Defender when bootstrapping because it just slows # things down. commands.insert(0, 'Set-MpPreference -DisableRealtimeMonitoring $true') commands.append('Set-MpPreference -DisableRealtimeMonitoring $false') + # Trigger shutdown to prepare for imaging. + commands.append( + 'Stop-Computer -ComputerName localhost', + ) + # Compute a deterministic fingerprint to determine whether image needs # to be regenerated. fingerprint = resolve_fingerprint( diff -r 5acbc550d987 -r f59e49f6bee4 contrib/automation/hgautomation/windows.py --- a/contrib/automation/hgautomation/windows.py Sun Jun 05 07:16:29 2022 +0200 +++ b/contrib/automation/hgautomation/windows.py Thu Sep 01 16:51:26 2022 +0200 @@ -45,6 +45,7 @@ '''.lstrip() BUILD_INNO_PYTHON3 = r''' +$Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH" $Env:RUSTUP_HOME = "C:\hgdev\rustup" $Env:CARGO_HOME = "C:\hgdev\cargo" Set-Location C:\hgdev\src @@ -56,6 +57,7 @@ BUILD_WHEEL = r''' +$Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH" Set-Location C:\hgdev\src C:\hgdev\python{python_version}-{arch}\python.exe -m pip wheel --wheel-dir dist . if ($LASTEXITCODE -ne 0) {{ @@ -64,6 +66,7 @@ ''' BUILD_WIX_PYTHON3 = r''' +$Env:PATH = "C:\hgdev\venv-bootstrap\Scripts;$Env:PATH" $Env:RUSTUP_HOME = "C:\hgdev\rustup" $Env:CARGO_HOME = "C:\hgdev\cargo" Set-Location C:\hgdev\src diff -r 5acbc550d987 -r f59e49f6bee4 contrib/automation/requirements.txt --- a/contrib/automation/requirements.txt Sun Jun 05 07:16:29 2022 +0200 +++ b/contrib/automation/requirements.txt Thu Sep 01 16:51:26 2022 +0200 @@ -1,193 +1,267 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.10 # To update, run: # # pip-compile --generate-hashes --output-file=contrib/automation/requirements.txt contrib/automation/requirements.txt.in # -asn1crypto==1.0.1 \ - --hash=sha256:0b199f211ae690df3db4fd6c1c4ff976497fb1da689193e368eedbadc53d9292 \ - --hash=sha256:bca90060bd995c3f62c4433168eab407e44bdbdb567b3f3a396a676c1a4c4a3f \ - # via cryptography -bcrypt==3.1.7 \ - --hash=sha256:0258f143f3de96b7c14f762c770f5fc56ccd72f8a1857a451c1cd9a655d9ac89 \ - --hash=sha256:0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42 \ - --hash=sha256:19a4b72a6ae5bb467fea018b825f0a7d917789bcfe893e53f15c92805d187294 \ - --hash=sha256:5432dd7b34107ae8ed6c10a71b4397f1c853bd39a4d6ffa7e35f40584cffd161 \ - --hash=sha256:69361315039878c0680be456640f8705d76cb4a3a3fe1e057e0f261b74be4b31 \ - --hash=sha256:6fe49a60b25b584e2f4ef175b29d3a83ba63b3a4df1b4c0605b826668d1b6be5 \ - --hash=sha256:74a015102e877d0ccd02cdeaa18b32aa7273746914a6c5d0456dd442cb65b99c \ - --hash=sha256:763669a367869786bb4c8fcf731f4175775a5b43f070f50f46f0b59da45375d0 \ - --hash=sha256:8b10acde4e1919d6015e1df86d4c217d3b5b01bb7744c36113ea43d529e1c3de \ - --hash=sha256:9fe92406c857409b70a38729dbdf6578caf9228de0aef5bc44f859ffe971a39e \ - --hash=sha256:a190f2a5dbbdbff4b74e3103cef44344bc30e61255beb27310e2aec407766052 \ - --hash=sha256:a595c12c618119255c90deb4b046e1ca3bcfad64667c43d1166f2b04bc72db09 \ - --hash=sha256:c9457fa5c121e94a58d6505cadca8bed1c64444b83b3204928a866ca2e599105 \ - --hash=sha256:cb93f6b2ab0f6853550b74e051d297c27a638719753eb9ff66d1e4072be67133 \ - --hash=sha256:d7bdc26475679dd073ba0ed2766445bb5b20ca4793ca0db32b399dccc6bc84b7 \ - --hash=sha256:ff032765bb8716d9387fd5376d987a937254b0619eff0972779515b5c98820bc \ +bcrypt==3.2.2 \ + --hash=sha256:2b02d6bfc6336d1094276f3f588aa1225a598e27f8e3388f4db9948cb707b521 \ + --hash=sha256:433c410c2177057705da2a9f2cd01dd157493b2a7ac14c8593a16b3dab6b6bfb \ + --hash=sha256:4e029cef560967fb0cf4a802bcf4d562d3d6b4b1bf81de5ec1abbe0f1adb027e \ + --hash=sha256:61bae49580dce88095d669226d5076d0b9d927754cedbdf76c6c9f5099ad6f26 \ + --hash=sha256:6d2cb9d969bfca5bc08e45864137276e4c3d3d7de2b162171def3d188bf9d34a \ + --hash=sha256:7180d98a96f00b1050e93f5b0f556e658605dd9f524d0b0e68ae7944673f525e \ + --hash=sha256:7d9ba2e41e330d2af4af6b1b6ec9e6128e91343d0b4afb9282e54e5508f31baa \ + --hash=sha256:7ff2069240c6bbe49109fe84ca80508773a904f5a8cb960e02a977f7f519b129 \ + --hash=sha256:88273d806ab3a50d06bc6a2fc7c87d737dd669b76ad955f449c43095389bc8fb \ + --hash=sha256:a2c46100e315c3a5b90fdc53e429c006c5f962529bc27e1dfd656292c20ccc40 \ + --hash=sha256:cd43303d6b8a165c29ec6756afd169faba9396a9472cdff753fe9f19b96ce2fa # via paramiko -bleach==3.1.0 \ - --hash=sha256:213336e49e102af26d9cde77dd2d0397afabc5a6bf2fed985dc35b5d1e285a16 \ - --hash=sha256:3fdf7f77adcf649c9911387df51254b813185e32b2c6619f690b593a617e19fa \ +bleach==5.0.0 \ + --hash=sha256:08a1fe86d253b5c88c92cc3d810fd8048a16d15762e1e5b74d502256e5926aa1 \ + --hash=sha256:c6d6cc054bdc9c83b48b8083e236e5f00f238428666d2ce2e083eaa5fd568565 # via readme-renderer -boto3==1.9.243 \ - --hash=sha256:404acbecef8f4912f18312fcfaffe7eba7f10b3b7adf7853bdba59cdf2275ebb \ - --hash=sha256:c6e5a7e4548ce7586c354ff633f2a66ba3c471d15a8ae6a30f873122ab04e1cf -botocore==1.12.243 \ - --hash=sha256:397585a7881230274afb8d1877ef69a661b0a311745cd324f14a052fb2a2863a \ - --hash=sha256:4496f8da89cb496462a831897ad248e13e431d9fa7e41e06d426fd6658ab6e59 \ - # via boto3, s3transfer -certifi==2021.5.30 \ - --hash=sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee \ - --hash=sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8 \ +boto3==1.22.7 \ + --hash=sha256:4dc0df36c3465ff0d586017da68b0152123695f38f30ad98fed7185e59298d2c \ + --hash=sha256:de4fa49ca1cbc93313144e93e6d0997cbb61c8cca91f3418b4e3646dc215f441 + # via -r contrib/automation/requirements.txt.in +botocore==1.25.7 \ + --hash=sha256:190361776d96323ff401b976175f76172acf7ebbe3efbb19c4c6f9800a9ad6b6 \ + --hash=sha256:83da857c12fff5cf4c1a64afaa72a28ff5bef929a2834ec4ed5b0b674f88fd0e + # via + # boto3 + # s3transfer +certifi==2021.10.8 \ + --hash=sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872 \ + --hash=sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569 # via requests -cffi==1.12.3 \ - --hash=sha256:041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774 \ - --hash=sha256:046ef9a22f5d3eed06334d01b1e836977eeef500d9b78e9ef693f9380ad0b83d \ - --hash=sha256:066bc4c7895c91812eff46f4b1c285220947d4aa46fa0a2651ff85f2afae9c90 \ - --hash=sha256:066c7ff148ae33040c01058662d6752fd73fbc8e64787229ea8498c7d7f4041b \ - --hash=sha256:2444d0c61f03dcd26dbf7600cf64354376ee579acad77aef459e34efcb438c63 \ - --hash=sha256:300832850b8f7967e278870c5d51e3819b9aad8f0a2c8dbe39ab11f119237f45 \ - --hash=sha256:34c77afe85b6b9e967bd8154e3855e847b70ca42043db6ad17f26899a3df1b25 \ - --hash=sha256:46de5fa00f7ac09f020729148ff632819649b3e05a007d286242c4882f7b1dc3 \ - --hash=sha256:4aa8ee7ba27c472d429b980c51e714a24f47ca296d53f4d7868075b175866f4b \ - --hash=sha256:4d0004eb4351e35ed950c14c11e734182591465a33e960a4ab5e8d4f04d72647 \ - --hash=sha256:4e3d3f31a1e202b0f5a35ba3bc4eb41e2fc2b11c1eff38b362de710bcffb5016 \ - --hash=sha256:50bec6d35e6b1aaeb17f7c4e2b9374ebf95a8975d57863546fa83e8d31bdb8c4 \ - --hash=sha256:55cad9a6df1e2a1d62063f79d0881a414a906a6962bc160ac968cc03ed3efcfb \ - --hash=sha256:5662ad4e4e84f1eaa8efce5da695c5d2e229c563f9d5ce5b0113f71321bcf753 \ - --hash=sha256:59b4dc008f98fc6ee2bb4fd7fc786a8d70000d058c2bbe2698275bc53a8d3fa7 \ - --hash=sha256:73e1ffefe05e4ccd7bcea61af76f36077b914f92b76f95ccf00b0c1b9186f3f9 \ - --hash=sha256:a1f0fd46eba2d71ce1589f7e50a9e2ffaeb739fb2c11e8192aa2b45d5f6cc41f \ - --hash=sha256:a2e85dc204556657661051ff4bab75a84e968669765c8a2cd425918699c3d0e8 \ - --hash=sha256:a5457d47dfff24882a21492e5815f891c0ca35fefae8aa742c6c263dac16ef1f \ - --hash=sha256:a8dccd61d52a8dae4a825cdbb7735da530179fea472903eb871a5513b5abbfdc \ - --hash=sha256:ae61af521ed676cf16ae94f30fe202781a38d7178b6b4ab622e4eec8cefaff42 \ - --hash=sha256:b012a5edb48288f77a63dba0840c92d0504aa215612da4541b7b42d849bc83a3 \ - --hash=sha256:d2c5cfa536227f57f97c92ac30c8109688ace8fa4ac086d19d0af47d134e2909 \ - --hash=sha256:d42b5796e20aacc9d15e66befb7a345454eef794fdb0737d1af593447c6c8f45 \ - --hash=sha256:dee54f5d30d775f525894d67b1495625dd9322945e7fee00731952e0368ff42d \ - --hash=sha256:e070535507bd6aa07124258171be2ee8dfc19119c28ca94c9dfb7efd23564512 \ - --hash=sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff \ - --hash=sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201 \ - # via bcrypt, cryptography, pynacl -chardet==3.0.4 \ - --hash=sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae \ - --hash=sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691 \ +cffi==1.15.0 \ + --hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \ + --hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \ + --hash=sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636 \ + --hash=sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20 \ + --hash=sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728 \ + --hash=sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27 \ + --hash=sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66 \ + --hash=sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443 \ + --hash=sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0 \ + --hash=sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7 \ + --hash=sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39 \ + --hash=sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605 \ + --hash=sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a \ + --hash=sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37 \ + --hash=sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029 \ + --hash=sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139 \ + --hash=sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc \ + --hash=sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df \ + --hash=sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14 \ + --hash=sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880 \ + --hash=sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2 \ + --hash=sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a \ + --hash=sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e \ + --hash=sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474 \ + --hash=sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024 \ + --hash=sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8 \ + --hash=sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0 \ + --hash=sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e \ + --hash=sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a \ + --hash=sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e \ + --hash=sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032 \ + --hash=sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6 \ + --hash=sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e \ + --hash=sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b \ + --hash=sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e \ + --hash=sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954 \ + --hash=sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962 \ + --hash=sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c \ + --hash=sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4 \ + --hash=sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55 \ + --hash=sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962 \ + --hash=sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023 \ + --hash=sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c \ + --hash=sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6 \ + --hash=sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8 \ + --hash=sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382 \ + --hash=sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7 \ + --hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \ + --hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \ + --hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796 + # via + # bcrypt + # cryptography + # pynacl +charset-normalizer==2.0.12 \ + --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ + --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df # via requests -cryptography==2.7 \ - --hash=sha256:24b61e5fcb506424d3ec4e18bca995833839bf13c59fc43e530e488f28d46b8c \ - --hash=sha256:25dd1581a183e9e7a806fe0543f485103232f940fcfc301db65e630512cce643 \ - --hash=sha256:3452bba7c21c69f2df772762be0066c7ed5dc65df494a1d53a58b683a83e1216 \ - --hash=sha256:41a0be220dd1ed9e998f5891948306eb8c812b512dc398e5a01846d855050799 \ - --hash=sha256:5751d8a11b956fbfa314f6553d186b94aa70fdb03d8a4d4f1c82dcacf0cbe28a \ - --hash=sha256:5f61c7d749048fa6e3322258b4263463bfccefecb0dd731b6561cb617a1d9bb9 \ - --hash=sha256:72e24c521fa2106f19623a3851e9f89ddfdeb9ac63871c7643790f872a305dfc \ - --hash=sha256:7b97ae6ef5cba2e3bb14256625423413d5ce8d1abb91d4f29b6d1a081da765f8 \ - --hash=sha256:961e886d8a3590fd2c723cf07be14e2a91cf53c25f02435c04d39e90780e3b53 \ - --hash=sha256:96d8473848e984184b6728e2c9d391482008646276c3ff084a1bd89e15ff53a1 \ - --hash=sha256:ae536da50c7ad1e002c3eee101871d93abdc90d9c5f651818450a0d3af718609 \ - --hash=sha256:b0db0cecf396033abb4a93c95d1602f268b3a68bb0a9cc06a7cff587bb9a7292 \ - --hash=sha256:cfee9164954c186b191b91d4193989ca994703b2fff406f71cf454a2d3c7327e \ - --hash=sha256:e6347742ac8f35ded4a46ff835c60e68c22a536a8ae5c4422966d06946b6d4c6 \ - --hash=sha256:f27d93f0139a3c056172ebb5d4f9056e770fdf0206c2f422ff2ebbad142e09ed \ - --hash=sha256:f57b76e46a58b63d1c6375017f4564a28f19a5ca912691fd2e4261b3414b618d \ - # via paramiko, pypsrp -docutils==0.15.2 \ - --hash=sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0 \ - --hash=sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827 \ - --hash=sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99 \ - # via botocore, readme-renderer -idna==2.8 \ - --hash=sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407 \ - --hash=sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c \ +commonmark==0.9.1 \ + --hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \ + --hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9 + # via rich +cryptography==37.0.2 \ + --hash=sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804 \ + --hash=sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178 \ + --hash=sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717 \ + --hash=sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982 \ + --hash=sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004 \ + --hash=sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe \ + --hash=sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452 \ + --hash=sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336 \ + --hash=sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4 \ + --hash=sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15 \ + --hash=sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d \ + --hash=sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c \ + --hash=sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0 \ + --hash=sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06 \ + --hash=sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9 \ + --hash=sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1 \ + --hash=sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023 \ + --hash=sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de \ + --hash=sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f \ + --hash=sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181 \ + --hash=sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e \ + --hash=sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a + # via + # paramiko + # pypsrp + # pyspnego + # secretstorage +docutils==0.18.1 \ + --hash=sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c \ + --hash=sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06 + # via readme-renderer +idna==3.3 \ + --hash=sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff \ + --hash=sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d # via requests -jmespath==0.9.4 \ - --hash=sha256:3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6 \ - --hash=sha256:bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c \ - # via boto3, botocore -ntlm-auth==1.4.0 \ - --hash=sha256:11f7a3cec38155b7cecdd9bbc8c37cd738d8012f0523b3f98d8caefe394feb97 \ - --hash=sha256:350f2389c8ee5517f47db55a36ac2f8efc9742a60a678d6e2caa92385bdcaa9a \ +importlib-metadata==4.11.3 \ + --hash=sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6 \ + --hash=sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539 + # via + # keyring + # twine +jeepney==0.8.0 \ + --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ + --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755 + # via + # keyring + # secretstorage +jmespath==1.0.0 \ + --hash=sha256:a490e280edd1f57d6de88636992d05b71e97d69a26a19f058ecf7d304474bf5e \ + --hash=sha256:e8dcd576ed616f14ec02eed0005c85973b5890083313860136657e24784e4c04 + # via + # boto3 + # botocore +keyring==23.5.0 \ + --hash=sha256:9012508e141a80bd1c0b6778d5c610dd9f8c464d75ac6774248500503f972fb9 \ + --hash=sha256:b0d28928ac3ec8e42ef4cc227822647a19f1d544f21f96457965dc01cf555261 + # via twine +paramiko==2.10.4 \ + --hash=sha256:3c9ed6084f4b671ab66dc3c729092d32d96c3258f1426071301cb33654b09027 \ + --hash=sha256:3d2e650b6812ce6d160abff701d6ef4434ec97934b13e95cf1ad3da70ffb5c58 + # via -r contrib/automation/requirements.txt.in +pkginfo==1.8.2 \ + --hash=sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff \ + --hash=sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc + # via twine +pycparser==2.21 \ + --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ + --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 + # via cffi +pygments==2.12.0 \ + --hash=sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb \ + --hash=sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519 + # via + # readme-renderer + # rich +pynacl==1.5.0 \ + --hash=sha256:06b8f6fa7f5de8d5d2f7573fe8c863c051225a27b61e6860fd047b1775807858 \ + --hash=sha256:0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d \ + --hash=sha256:20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93 \ + --hash=sha256:401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1 \ + --hash=sha256:52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92 \ + --hash=sha256:61f642bf2378713e2c2e1de73444a3778e5f0a38be6fee0fe532fe30060282ff \ + --hash=sha256:8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba \ + --hash=sha256:a36d4a9dda1f19ce6e03c9a784a2921a4b726b02e1c736600ca9c22029474394 \ + --hash=sha256:a422368fc821589c228f4c49438a368831cb5bbc0eab5ebe1d7fac9dded6567b \ + --hash=sha256:e46dae94e34b085175f8abb3b0aaa7da40767865ac82c928eeb9e57e1ea8a543 + # via paramiko +pypsrp==0.8.1 \ + --hash=sha256:0101345ceb415896fed9b056e7b77d65312089ddc73c4286247ccf1859d4bc4d \ + --hash=sha256:f5500acd11dfe742d51b7fbb61321ba721038a300d67763dc52babe709db65e7 + # via -r contrib/automation/requirements.txt.in +pyspnego==0.5.2 \ + --hash=sha256:1fed228edc4b1730844da8237b90489be28c55681cf3934cd04fceb2253e55bf \ + --hash=sha256:25fbc90fc6bd16881480316739bab820cc91364765e46340da17f861f89691f1 \ + --hash=sha256:274b3a2d37e45ad4567bc5754be04b5fefad3f7cdea7d205f739d8a26b5a9189 \ + --hash=sha256:36db7ec38023a23a545114dfd23825639571f135c72fb4b13a1ed559a0a4d93c \ + --hash=sha256:3b1ff3c1d5588b66f8e4ebafa3079a7bf0bdcc6fb144b944c5a101e688a5a280 \ + --hash=sha256:4b9bda51bd964f40322aa1b33dcfc5d68f23b0680b4b5158175f2e9a04119aa9 \ + --hash=sha256:5d6d91e35ee63a5de30eb70716bf25274bf16c2c472b046dd21fad60fe63b0b6 \ + --hash=sha256:7562bc640bf402bb2849f325b0bb41260bd2c0cb06e38b9a8c6f7021b452c873 \ + --hash=sha256:9c5bdb9f0207e2ce9e5410ee2205bf016755712018534c711ae6c1daff7fa7db \ + --hash=sha256:a5c135d20819db3c48f65054d648317f369a61b7b22dc17b9e5ec9c0169541a0 \ + --hash=sha256:bd95633e7dce69e267579bdbe992fc081a14310236b4e84c3d179b1cf6439ca5 \ + --hash=sha256:eb41b970dbda0dfe07b1da6fc83fe9f534a66d8dea38c06c0155377697407d9a # via pypsrp -paramiko==2.6.0 \ - --hash=sha256:99f0179bdc176281d21961a003ffdb2ec369daac1a1007241f53374e376576cf \ - --hash=sha256:f4b2edfa0d226b70bd4ca31ea7e389325990283da23465d572ed1f70a7583041 -pkginfo==1.5.0.1 \ - --hash=sha256:7424f2c8511c186cd5424bbf31045b77435b37a8d604990b79d4e70d741148bb \ - --hash=sha256:a6d9e40ca61ad3ebd0b72fbadd4fba16e4c0e4df0428c041e01e06eb6ee71f32 \ +python-dateutil==2.8.2 \ + --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ + --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + # via botocore +readme-renderer==35.0 \ + --hash=sha256:73b84905d091c31f36e50b4ae05ae2acead661f6a09a9abb4df7d2ddcdb6a698 \ + --hash=sha256:a727999acfc222fc21d82a12ed48c957c4989785e5865807c65a487d21677497 # via twine -pycparser==2.19 \ - --hash=sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3 \ - # via cffi -pygments==2.4.2 \ - --hash=sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127 \ - --hash=sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297 \ - # via readme-renderer -pynacl==1.3.0 \ - --hash=sha256:05c26f93964373fc0abe332676cb6735f0ecad27711035b9472751faa8521255 \ - --hash=sha256:0c6100edd16fefd1557da078c7a31e7b7d7a52ce39fdca2bec29d4f7b6e7600c \ - --hash=sha256:0d0a8171a68edf51add1e73d2159c4bc19fc0718e79dec51166e940856c2f28e \ - --hash=sha256:1c780712b206317a746ace34c209b8c29dbfd841dfbc02aa27f2084dd3db77ae \ - --hash=sha256:2424c8b9f41aa65bbdbd7a64e73a7450ebb4aa9ddedc6a081e7afcc4c97f7621 \ - --hash=sha256:2d23c04e8d709444220557ae48ed01f3f1086439f12dbf11976e849a4926db56 \ - --hash=sha256:30f36a9c70450c7878053fa1344aca0145fd47d845270b43a7ee9192a051bf39 \ - --hash=sha256:37aa336a317209f1bb099ad177fef0da45be36a2aa664507c5d72015f956c310 \ - --hash=sha256:4943decfc5b905748f0756fdd99d4f9498d7064815c4cf3643820c9028b711d1 \ - --hash=sha256:57ef38a65056e7800859e5ba9e6091053cd06e1038983016effaffe0efcd594a \ - --hash=sha256:5bd61e9b44c543016ce1f6aef48606280e45f892a928ca7068fba30021e9b786 \ - --hash=sha256:6482d3017a0c0327a49dddc8bd1074cc730d45db2ccb09c3bac1f8f32d1eb61b \ - --hash=sha256:7d3ce02c0784b7cbcc771a2da6ea51f87e8716004512493a2b69016326301c3b \ - --hash=sha256:a14e499c0f5955dcc3991f785f3f8e2130ed504fa3a7f44009ff458ad6bdd17f \ - --hash=sha256:a39f54ccbcd2757d1d63b0ec00a00980c0b382c62865b61a505163943624ab20 \ - --hash=sha256:aabb0c5232910a20eec8563503c153a8e78bbf5459490c49ab31f6adf3f3a415 \ - --hash=sha256:bd4ecb473a96ad0f90c20acba4f0bf0df91a4e03a1f4dd6a4bdc9ca75aa3a715 \ - --hash=sha256:e2da3c13307eac601f3de04887624939aca8ee3c9488a0bb0eca4fb9401fc6b1 \ - --hash=sha256:f67814c38162f4deb31f68d590771a29d5ae3b1bd64b75cf232308e5c74777e0 \ - # via paramiko -pypsrp==0.4.0 \ - --hash=sha256:64b5bdd725a9744c821483b05ecd266f6417f4c6e90ee961a08838480f7d025e \ - --hash=sha256:f42919247fb80f7dc24c552560d7c24e754d15326030c9e3b7b94f51cfa4dc69 -python-dateutil==2.8.0 \ - --hash=sha256:7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb \ - --hash=sha256:c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e \ - # via botocore -readme-renderer==24.0 \ - --hash=sha256:bb16f55b259f27f75f640acf5e00cf897845a8b3e4731b5c1a436e4b8529202f \ - --hash=sha256:c8532b79afc0375a85f10433eca157d6b50f7d6990f337fa498c96cd4bfc203d \ - # via twine +requests==2.27.1 \ + --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ + --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d + # via + # pypsrp + # requests-toolbelt + # twine requests-toolbelt==0.9.1 \ --hash=sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f \ - --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 \ + --hash=sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0 + # via twine +rfc3986==2.0.0 \ + --hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \ + --hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c # via twine -requests==2.22.0 \ - --hash=sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4 \ - --hash=sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31 \ - # via pypsrp, requests-toolbelt, twine -s3transfer==0.2.1 \ - --hash=sha256:6efc926738a3cd576c2a79725fed9afde92378aa5c6a957e3af010cb019fac9d \ - --hash=sha256:b780f2411b824cb541dbcd2c713d0cb61c7d1bcadae204cdddda2b35cef493ba \ +rich==12.3.0 \ + --hash=sha256:0eb63013630c6ee1237e0e395d51cb23513de6b5531235e33889e8842bdf3a6f \ + --hash=sha256:7e8700cda776337036a712ff0495b04052fb5f957c7dfb8df997f88350044b64 + # via twine +s3transfer==0.5.2 \ + --hash=sha256:7a6f4c4d1fdb9a2b640244008e142cbc2cd3ae34b386584ef044dd0f27101971 \ + --hash=sha256:95c58c194ce657a5f4fb0b9e60a84968c808888aed628cd98ab8771fe1db98ed # via boto3 -six==1.12.0 \ - --hash=sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c \ - --hash=sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73 \ - # via bcrypt, bleach, cryptography, pynacl, pypsrp, python-dateutil, readme-renderer -tqdm==4.36.1 \ - --hash=sha256:abc25d0ce2397d070ef07d8c7e706aede7920da163c64997585d42d3537ece3d \ - --hash=sha256:dd3fcca8488bb1d416aa7469d2f277902f26260c45aa86b667b074cd44b3b115 \ - # via twine -twine==2.0.0 \ - --hash=sha256:5319dd3e02ac73fcddcd94f035b9631589ab5d23e1f4699d57365199d85261e1 \ - --hash=sha256:9fe7091715c7576df166df8ef6654e61bada39571783f2fd415bdcba867c6993 -urllib3==1.25.6 \ - --hash=sha256:3de946ffbed6e6746608990594d08faac602528ac7015ac28d33cee6a45b7398 \ - --hash=sha256:9a107b99a5393caf59c7aa3c1249c16e6879447533d0887f4336dde834c7be86 \ - # via botocore, requests +secretstorage==3.3.2 \ + --hash=sha256:0a8eb9645b320881c222e827c26f4cfcf55363e8b374a021981ef886657a912f \ + --hash=sha256:755dc845b6ad76dcbcbc07ea3da75ae54bb1ea529eb72d15f83d26499a5df319 + # via keyring +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via + # bleach + # paramiko + # python-dateutil +twine==4.0.0 \ + --hash=sha256:6f7496cf14a3a8903474552d5271c79c71916519edb42554f23f42a8563498a9 \ + --hash=sha256:817aa0c0bdc02a5ebe32051e168e23c71a0608334e624c793011f120dbbc05b7 + # via -r contrib/automation/requirements.txt.in +urllib3==1.26.9 \ + --hash=sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14 \ + --hash=sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e + # via + # botocore + # requests + # twine webencodings==0.5.1 \ --hash=sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78 \ - --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 \ + --hash=sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923 # via bleach - -# WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag. -# setuptools==41.2.0 # via twine +zipp==3.8.0 \ + --hash=sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad \ + --hash=sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099 + # via importlib-metadata diff -r 5acbc550d987 -r f59e49f6bee4 contrib/install-windows-dependencies.ps1 --- a/contrib/install-windows-dependencies.ps1 Sun Jun 05 07:16:29 2022 +0200 +++ b/contrib/install-windows-dependencies.ps1 Thu Sep 01 16:51:26 2022 +0200 @@ -49,9 +49,9 @@ $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" $MINGW_BIN_SHA256 = "2AB8EFD7C7D1FC8EAF8B2FA4DA4EEF8F3E47768284C021599BC7435839A046DF" -$MERCURIAL_WHEEL_FILENAME = "mercurial-5.8.1-cp39-cp39-win_amd64.whl" -$MERCURIAL_WHEEL_URL = "https://files.pythonhosted.org/packages/5c/b5/a5fa664761eef29b6c90eb24cb09ab8fe2c9b4b86af41d42c17476aff29b/$MERCURIAL_WHEEL_FILENAME" -$MERCURIAL_WHEEL_SHA256 = "cbf3efa68fd7ebf94691bd00d2c86bbd47ca73620c8faa4f18b6c394bf5f82b0" +$MERCURIAL_WHEEL_FILENAME = "mercurial-6.1.4-cp39-cp39-win_amd64.whl" +$MERCURIAL_WHEEL_URL = "https://files.pythonhosted.org/packages/82/86/fbcc4b552f6c1bdfdbbc5a68b0896a55ac3c6c0e8baf51394816bdc320bd/$MERCURIAL_WHEEL_FILENAME" +$MERCURIAL_WHEEL_SHA256 = "ab578daec7c21786c668b0da2e71282a290d18010255719f78d0e55145020d46" $RUSTUP_INIT_URL = "https://static.rust-lang.org/rustup/archive/1.21.1/x86_64-pc-windows-gnu/rustup-init.exe" $RUSTUP_INIT_SHA256 = "d17df34ba974b9b19cf5c75883a95475aa22ddc364591d75d174090d55711c72" diff -r 5acbc550d987 -r f59e49f6bee4 contrib/packaging/requirements-windows-py3.txt --- a/contrib/packaging/requirements-windows-py3.txt Sun Jun 05 07:16:29 2022 +0200 +++ b/contrib/packaging/requirements-windows-py3.txt Thu Sep 01 16:51:26 2022 +0200 @@ -80,20 +80,28 @@ --hash=sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af \ --hash=sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc # via -r contrib/packaging/requirements-windows.txt.in -dulwich==0.20.6 ; python_version >= "3" \ - --hash=sha256:1ccd55e38fa9f169290f93e027ab4508202f5bdd6ef534facac4edd3f6903f0d \ - --hash=sha256:2452a0379cc7bbbd7ab893ec104d18039f1ea98b0d6be6bca5646e5cf29e0ae9 \ - --hash=sha256:2f4aebc54ed2d37dcee737024421452375570a422eb682232e676aa7ebc9cb4b \ - --hash=sha256:304f52b10c49c3a6ddfbd73e2e93d8e979350225cfba9688e51110e74fa2f718 \ - --hash=sha256:49e747c72d9099e873bf6196260346d5996c3f28af788294d47a8accdc524de7 \ - --hash=sha256:4fee359928c59b53af153a582a7ed7595259a5a825df400301a29e17fd78dfd3 \ - --hash=sha256:50ef300a9fa4efd9f85009c2bd8b515266ec1529400f8834f85c04fa9f09b2c0 \ - --hash=sha256:5348310f21b2a23847342ce464461499b6652483fa42de03714d0f6421a99698 \ - --hash=sha256:7e7b5dea5178b6493fdb83adccbe81de9ddff55f79880185ed594c0e3a97209b \ - --hash=sha256:8f7a7f973be2beedfb10dd8d3eb6bdf9ec466c72ad555704897cbd6357fe5021 \ - --hash=sha256:bea6e6caffc6c73bfd1647714c5715ab96ac49deb8beb8b67511529afa25685a \ - --hash=sha256:e5871b86a079e9e290f52ab14559cea1b694a0b8ed2b9ebb898f6ced7f14a406 \ - --hash=sha256:e593f514b8ac740b4ceeb047745b4719bfc9f334904245c6edcb3a9d002f577b +dulwich==0.20.45 \ + --hash=sha256:042bc206764968b17338e32c52bb6a116154eb87a63651971946917dfa37a359 \ + --hash=sha256:22d433ba9c776f2b0e19b1186e01e25ca286175e20f4ac422141db94eeaac08b \ + --hash=sha256:2d7cf5171034d9d61b928bd5f9c509000e895d1ba29bd6ea850b9e4f93fca0f7 \ + --hash=sha256:3136bcaf7508522a2aa63f856743f06129261bc5a03331aa6a0654fa6d04a4ae \ + --hash=sha256:35015e43207752cf7924860e85a3c2290c652c0c3ee81e7c95c52d34638f605d \ + --hash=sha256:3f2c137a0003e80e384d116e65b453f8a704c2d393c30a47b447764e7f9c05a1 \ + --hash=sha256:49852f12c1e1d50039f927e9fdee1bd00a9b428c31b078ba5ba9fc1cf88e9d3e \ + --hash=sha256:4abb1b0e1e50192ce7204c4e14f24c989c5920c56de908365f4e66c6e3458945 \ + --hash=sha256:4e405ac9426288ca782c45e066f816d878b4a529acf4d4b0b2a5bb45a804dfec \ + --hash=sha256:5e41044ac51a4b3454d67e5f691808540470deeb6a852d7c5c6ca44c48b4cdc3 \ + --hash=sha256:65334bd7a1d91054516a49f86343e9c2549740bbddebcbb4763c8aacf2aac48c \ + --hash=sha256:6e02babb44bdad17b6c9c50b4f9df42f6e511e3a51555ac07dd85ec904efe0b1 \ + --hash=sha256:70710dd9ca2a442190c7e506892db074c318ac762e221f7529b8ce34802041b7 \ + --hash=sha256:9b689b05bc7baa5cb20ebff54291085b598a9bdf7caeab23daf93b46421d96ff \ + --hash=sha256:b3f64870f2f206dda3308cb73563f5f59fdc084179271651a0488d12ab4185b9 \ + --hash=sha256:bb75268cec2f3ae6f6b7addbc0db50db2e9e42b2ad8364e74b9f5b17ab0053b5 \ + --hash=sha256:c8c0fc7d2e3b0ad6a4faadf96f0626fa50935ababfd774b9b94edaa28f0668ec \ + --hash=sha256:d89f53a739ac3394b5ef2f178480569b7d36d4fe7b4bb49678582914530ce35b \ + --hash=sha256:d8b6aae7af8edbfac8038e1777ae820efac33c7c22a8025d3254bbd53ec725b5 \ + --hash=sha256:eb4189d72a0e2f3070e2abdbd10a05c0e62355cd5496761d6e68f1e865ac6fad \ + --hash=sha256:efe46167eb02ba85d9c2e993635e7543e1e04bb3261112e9d54daff2385ae5df # via -r contrib/packaging/requirements-windows.txt.in fuzzywuzzy==0.18.0 \ --hash=sha256:45016e92264780e58972dca1b3d939ac864b78437422beecebb3095f8efd00e8 @@ -113,9 +121,9 @@ --hash=sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3 \ --hash=sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32 # via pytest -keyring==21.4.0 \ - --hash=sha256:4e34ea2fdec90c1c43d6610b5a5fafa1b9097db1802948e90caf5763974b8f8d \ - --hash=sha256:9aeadd006a852b78f4b4ef7c7556c2774d2432bbef8ee538a3e9089ac8b11466 +keyring==22.3.0 \ + --hash=sha256:16927a444b2c73f983520a48dec79ddab49fe76429ea05b8d528d778c8339522 \ + --hash=sha256:2bc8363ebdd63886126a012057a85c8cb6e143877afa02619ac7dbc9f38a207b # via -r contrib/packaging/requirements-windows.txt.in multidict==5.1.0 \ --hash=sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a \ @@ -172,7 +180,7 @@ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pygit2==1.7.1 ; python_version >= "3" \ +pygit2==1.7.1 \ --hash=sha256:2c9e95efb86c0b32cc07c26be3d179e851ca4a7899c47fef63c4203963144f5e \ --hash=sha256:3ddacbf461652d3d4900382f821d9fbd5ae2dedecd7862b5245842419ad0ccba \ --hash=sha256:4cb0414df6089d0072ebe93ff2f34730737172dd5f0e72289567d06a6caf09c0 \ diff -r 5acbc550d987 -r f59e49f6bee4 hgext/fsmonitor/__init__.py --- a/hgext/fsmonitor/__init__.py Sun Jun 05 07:16:29 2022 +0200 +++ b/hgext/fsmonitor/__init__.py Thu Sep 01 16:51:26 2022 +0200 @@ -117,6 +117,7 @@ from mercurial.i18n import _ from mercurial.node import hex + from mercurial.pycompat import open from mercurial import ( context, @@ -131,6 +132,9 @@ scmutil, util, ) + +# no-check-code because we're accessing private information only public in pure +from mercurial.pure import parsers from mercurial import match as matchmod from mercurial.utils import ( hashutil, @@ -332,10 +336,22 @@ # for better performance, directly access the inner dirstate map if the # standard dirstate implementation is in use. dmap = dmap._map + + has_mtime = parsers.DIRSTATE_V2_HAS_MTIME + mtime_is_ambiguous = parsers.DIRSTATE_V2_MTIME_SECOND_AMBIGUOUS + mask = has_mtime | mtime_is_ambiguous + + # All entries that may not be clean nonnormalset = { f for f, e in self._map.items() - if e._v1_state() != b"n" or e._v1_mtime() == -1 + if not e.maybe_clean + # same as "not has_time or has_ambiguous_time", but factored to only + # need a single access to flags for performance. + # `mask` removes all irrelevant bits, then we flip the `mtime` bit so + # its `true` value is NOT having a mtime, then check if either bit + # is set. + or bool((e.v2_data()[0] & mask) ^ has_mtime) } copymap = self._map.copymap diff -r 5acbc550d987 -r f59e49f6bee4 hgext/git/__init__.py --- a/hgext/git/__init__.py Sun Jun 05 07:16:29 2022 +0200 +++ b/hgext/git/__init__.py Thu Sep 01 16:51:26 2022 +0200 @@ -204,7 +204,9 @@ @active.setter def active(self, mark): - githead = mark is not None and (_BMS_PREFIX + mark) or None + githead = None + if mark is not None: + githead = _BMS_PREFIX + pycompat.fsdecode(mark) if githead is not None and githead not in self.gitrepo.references: raise AssertionError(b'bookmark %s does not exist!' % mark) @@ -254,7 +256,7 @@ ) def checkconflict(self, mark, force=False, target=None): - githead = _BMS_PREFIX + mark + githead = _BMS_PREFIX + pycompat.fsdecode(mark) cur = self.gitrepo.references['HEAD'] if githead in self.gitrepo.references and not force: if target: diff -r 5acbc550d987 -r f59e49f6bee4 hgext/git/dirstate.py --- a/hgext/git/dirstate.py Sun Jun 05 07:16:29 2022 +0200 +++ b/hgext/git/dirstate.py Thu Sep 01 16:51:26 2022 +0200 @@ -330,7 +330,8 @@ # TODO: figure out a strategy for saving index backups. pass - def set_tracked(self, f): + def set_tracked(self, f, reset_copy=False): + # TODO: support copies and reset_copy=True uf = pycompat.fsdecode(f) if uf in self.git.index: return False diff -r 5acbc550d987 -r f59e49f6bee4 hgext/git/gitlog.py --- a/hgext/git/gitlog.py Sun Jun 05 07:16:29 2022 +0200 +++ b/hgext/git/gitlog.py Thu Sep 01 16:51:26 2022 +0200 @@ -282,6 +282,30 @@ return ancestor.incrementalmissingancestors(self.parentrevs, common) + def findmissingrevs(self, common=None, heads=None): + """Return the revision numbers of the ancestors of heads that + are not ancestors of common. + + More specifically, return a list of revision numbers corresponding to + nodes N such that every N satisfies the following constraints: + + 1. N is an ancestor of some node in 'heads' + 2. N is not an ancestor of any node in 'common' + + The list is sorted by revision number, meaning it is + topologically sorted. + + 'heads' and 'common' are both lists of revision numbers. If heads is + not supplied, uses all of the revlog's heads. If common is not + supplied, uses nullid.""" + if common is None: + common = [nullrev] + if heads is None: + heads = self.headrevs() + + inc = self.incrementalmissingrevs(common=common) + return inc.missingancestors(heads) + def findmissing(self, common=None, heads=None): """Return the ancestors of heads that are not ancestors of common. diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/debugcommands.py --- a/mercurial/debugcommands.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/debugcommands.py Thu Sep 01 16:51:26 2022 +0200 @@ -1185,10 +1185,10 @@ """runs the changeset discovery protocol in isolation The local peer can be "replaced" by a subset of the local repository by - using the `--local-as-revs` flag. Int he same way, usual `remote` peer can - be "replaced" by a subset of the local repository using the - `--local-as-revs` flag. This is useful to efficiently debug pathological - discovery situation. + using the `--local-as-revs` flag. In the same way, the usual `remote` peer + can be "replaced" by a subset of the local repository using the + `--remote-as-revs` flag. This is useful to efficiently debug pathological + discovery situations. The following developer oriented config are relevant for people playing with this command: @@ -1276,6 +1276,9 @@ if not util.safehasattr(remote, b'branches'): # enable in-client legacy support remote = localrepo.locallegacypeer(remote.local()) + if remote_revs: + r = remote._repo.filtered(b'debug-discovery-remote-filter') + remote._repo = r common, _in, hds = treediscovery.findcommonincoming( repo, remote, force=True, audit=data ) @@ -1299,7 +1302,12 @@ revs = logcmdutil.revrange(repo, pushedrevs) nodes = [repo[r].node() for r in revs] common, any, hds = setdiscovery.findcommonheads( - ui, repo, remote, ancestorsof=nodes, audit=data + ui, + repo, + remote, + ancestorsof=nodes, + audit=data, + abortwhenunrelated=False, ) return common, hds @@ -1322,6 +1330,8 @@ common, hds = doit(localrevs, remoterevs) # compute all statistics + if len(common) == 1 and repo.nullid in common: + common = set() heads_common = set(common) heads_remote = set(hds) heads_local = set(repo.heads()) @@ -1375,7 +1385,24 @@ # display discovery summary fm.plain(b"elapsed time: %(elapsed)f seconds\n" % data) fm.plain(b"round-trips: %(total-roundtrips)9d\n" % data) + if b'total-round-trips-heads' in data: + fm.plain( + b" round-trips-heads: %(total-round-trips-heads)9d\n" % data + ) + if b'total-round-trips-branches' in data: + fm.plain( + b" round-trips-branches: %(total-round-trips-branches)9d\n" + % data + ) + if b'total-round-trips-between' in data: + fm.plain( + b" round-trips-between: %(total-round-trips-between)9d\n" % data + ) fm.plain(b"queries: %(total-queries)9d\n" % data) + if b'total-queries-branches' in data: + fm.plain(b" queries-branches: %(total-queries-branches)9d\n" % data) + if b'total-queries-between' in data: + fm.plain(b" queries-between: %(total-queries-between)9d\n" % data) fm.plain(b"heads summary:\n") fm.plain(b" total common heads: %(nb-common-heads)9d\n" % data) fm.plain(b" also local heads: %(nb-common-heads-local)9d\n" % data) diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/dirstate.py --- a/mercurial/dirstate.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/dirstate.py Thu Sep 01 16:51:26 2022 +0200 @@ -31,6 +31,7 @@ ) from .dirstateutils import ( + docket as docketmod, timestamp, ) @@ -1433,6 +1434,27 @@ else: return self._filename + def data_backup_filename(self, backupname): + if not self._use_dirstate_v2: + return None + return backupname + b'.v2-data' + + def _new_backup_data_filename(self, backupname): + """return a filename to backup a data-file or None""" + if not self._use_dirstate_v2: + return None + data_filename = self._map.docket.data_filename() + return data_filename, self.data_backup_filename(backupname) + + def backup_data_file(self, backupname): + if not self._use_dirstate_v2: + return None + docket = docketmod.DirstateDocket.parse( + self._opener.read(backupname), + self._nodeconstants, + ) + return self.data_backup_filename(backupname), docket.data_filename() + def savebackup(self, tr, backupname): '''Save current dirstate into backup file''' filename = self._actualfilename(tr) @@ -1472,6 +1494,19 @@ self._opener.join(backupname), hardlink=True, ) + data_pair = self._new_backup_data_filename(backupname) + if data_pair is not None: + data_filename, bck_data_filename = data_pair + util.copyfile( + self._opener.join(data_filename), + self._opener.join(bck_data_filename), + hardlink=True, + ) + if tr is not None: + # ensure that pending file written above is unlinked at + # failure, even if tr.writepending isn't invoked until the + # end of this transaction + tr.registertmp(bck_data_filename, location=b'plain') def restorebackup(self, tr, backupname): '''Restore dirstate by backup file''' @@ -1480,14 +1515,29 @@ self.invalidate() filename = self._actualfilename(tr) o = self._opener + data_pair = self.backup_data_file(backupname) if util.samefile(o.join(backupname), o.join(filename)): o.unlink(backupname) else: o.rename(backupname, filename, checkambig=True) + if data_pair is not None: + data_backup, target = data_pair + if o.exists(target) and util.samefile( + o.join(data_backup), o.join(target) + ): + o.unlink(data_backup) + else: + o.rename(data_backup, target, checkambig=True) + def clearbackup(self, tr, backupname): '''Clear backup file''' - self._opener.unlink(backupname) + o = self._opener + data_backup = self.backup_data_file(backupname) + o.unlink(backupname) + + if data_backup is not None: + o.unlink(data_backup[0]) def verify(self, m1, m2): """check the dirstate content again the parent manifest and yield errors""" diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/dirstatemap.py --- a/mercurial/dirstatemap.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/dirstatemap.py Thu Sep 01 16:51:26 2022 +0200 @@ -115,8 +115,6 @@ self.parents(), len(packed), meta ) data_filename = new_docket.data_filename() - if tr: - tr.add(data_filename, 0) self._opener.write(data_filename, packed) # Write the new docket after the new data file has been # written. Because `st` was opened with `atomictemp=True`, diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/localrepo.py Thu Sep 01 16:51:26 2022 +0200 @@ -2619,16 +2619,23 @@ return tr def _journalfiles(self): - return ( + first = ( (self.svfs, b'journal'), (self.svfs, b'journal.narrowspec'), (self.vfs, b'journal.narrowspec.dirstate'), (self.vfs, b'journal.dirstate'), + ) + middle = [] + dirstate_data = self.dirstate.data_backup_filename(b'journal.dirstate') + if dirstate_data is not None: + middle.append((self.vfs, dirstate_data)) + end = ( (self.vfs, b'journal.branch'), (self.vfs, b'journal.desc'), (bookmarks.bookmarksvfs(self), b'journal.bookmarks'), (self.svfs, b'journal.phaseroots'), ) + return first + tuple(middle) + end def undofiles(self): return [(vfs, undoname(x)) for vfs, x in self._journalfiles()] diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/mergestate.py --- a/mercurial/mergestate.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/mergestate.py Thu Sep 01 16:51:26 2022 +0200 @@ -159,7 +159,7 @@ ACTION_ADD = MergeAction(b'a', narrow_safe=True, changes=CHANGE_ADDED) ACTION_GET = MergeAction(b'g', narrow_safe=True, changes=CHANGE_MODIFIED) ACTION_PATH_CONFLICT = MergeAction(b'p') -ACTION_PATH_CONFLICT_RESOLVE = MergeAction('pr') +ACTION_PATH_CONFLICT_RESOLVE = MergeAction(b'pr') ACTION_ADD_MODIFIED = MergeAction( b'am', narrow_safe=True, changes=CHANGE_ADDED ) # not 100% about the changes value here diff -r 5acbc550d987 -r f59e49f6bee4 mercurial/treediscovery.py --- a/mercurial/treediscovery.py Sun Jun 05 07:16:29 2022 +0200 +++ b/mercurial/treediscovery.py Thu Sep 01 16:51:26 2022 +0200 @@ -38,7 +38,12 @@ if audit is not None: audit[b'total-roundtrips'] = 1 + audit[b'total-roundtrips-heads'] = 1 + audit[b'total-roundtrips-branches'] = 0 + audit[b'total-roundtrips-between'] = 0 audit[b'total-queries'] = 0 + audit[b'total-queries-branches'] = 0 + audit[b'total-queries-between'] = 0 if repo.changelog.tip() == repo.nullid: base.add(repo.nullid) @@ -71,6 +76,9 @@ with remote.commandexecutor() as e: if audit is not None: audit[b'total-queries'] += len(unknown) + audit[b'total-queries-branches'] += len(unknown) + audit[b'total-roundtrips'] += 1 + audit[b'total-roundtrips-branches'] += 1 branches = e.callcommand(b'branches', {b'nodes': unknown}).result() unknown = collections.deque(branches) @@ -110,16 +118,20 @@ seen.add(n[0]) if r: - reqcnt += 1 - progress.increment() - repo.ui.debug( - b"request %d: %s\n" % (reqcnt, b" ".join(map(short, r))) - ) for p in range(0, len(r), 10): + reqcnt += 1 + progress.increment() + if repo.ui.debugflag: + msg = b"request %d: %s\n" + msg %= (reqcnt, b" ".join(map(short, r))) + repo.ui.debug(msg) with remote.commandexecutor() as e: subset = r[p : p + 10] if audit is not None: audit[b'total-queries'] += len(subset) + audit[b'total-queries-branches'] += len(subset) + audit[b'total-roundtrips'] += 1 + audit[b'total-roundtrips-branches'] += 1 branches = e.callcommand( b'branches', { @@ -142,6 +154,9 @@ with remote.commandexecutor() as e: if audit is not None: audit[b'total-queries'] += len(search) + audit[b'total-queries-between'] += len(search) + audit[b'total-roundtrips'] += 1 + audit[b'total-roundtrips-between'] += 1 between = e.callcommand(b'between', {b'pairs': search}).result() for n, l in zip(search, between): @@ -187,7 +202,5 @@ progress.complete() repo.ui.debug(b"%d total queries\n" % reqcnt) - if audit is not None: - audit[b'total-roundtrips'] = reqcnt return base, list(fetch), heads diff -r 5acbc550d987 -r f59e49f6bee4 rust/Cargo.lock --- a/rust/Cargo.lock Sun Jun 05 07:16:29 2022 +0200 +++ b/rust/Cargo.lock Thu Sep 01 16:51:26 2022 +0200 @@ -222,22 +222,12 @@ [[package]] name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-channel" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", + "crossbeam-utils", ] [[package]] @@ -248,7 +238,7 @@ dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", - "crossbeam-utils 0.8.1", + "crossbeam-utils", ] [[package]] @@ -259,7 +249,7 @@ dependencies = [ "cfg-if 1.0.0", "const_fn", - "crossbeam-utils 0.8.1", + "crossbeam-utils", "lazy_static", "memoffset", "scopeguard", @@ -267,17 +257,6 @@ [[package]] name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", -] - -[[package]] -name = "crossbeam-utils" version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" @@ -476,7 +455,7 @@ "byteorder", "bytes-cast", "clap", - "crossbeam-channel 0.4.4", + "crossbeam-channel", "derive_more", "flate2", "format-bytes", @@ -488,7 +467,7 @@ "libc", "log", "memmap2", - "micro-timer 0.3.1", + "micro-timer", "ouroboros", "pretty_assertions", "rand 0.8.5", @@ -508,7 +487,7 @@ version = "0.1.0" dependencies = [ "cpython", - "crossbeam-channel 0.5.2", + "crossbeam-channel", "env_logger", "hg-core", "libc", @@ -621,12 +600,6 @@ ] [[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - -[[package]] name = "memchr" version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -634,9 +607,9 @@ [[package]] name = "memmap2" -version = "0.4.0" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5d3112c080d58ce560081baeaab7e1e864ca21795ddbf533d5b1842bb1ecf8" +checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" dependencies = [ "libc", "stable_deref_trait", @@ -653,38 +626,16 @@ [[package]] name = "micro-timer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2620153e1d903d26b72b89f0e9c48d8c4756cba941c185461dddc234980c298c" -dependencies = [ - "micro-timer-macros 0.3.1", - "scopeguard", -] - -[[package]] -name = "micro-timer" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5de32cb59a062672560d6f0842c4aa7714727457b9fe2daf8987d995a176a405" dependencies = [ - "micro-timer-macros 0.4.0", + "micro-timer-macros", "scopeguard", ] [[package]] name = "micro-timer-macros" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28a3473e6abd6e9aab36aaeef32ad22ae0bd34e79f376643594c2b152ec1c5d" -dependencies = [ - "proc-macro2", - "quote", - "scopeguard", - "syn", -] - -[[package]] -name = "micro-timer-macros" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cee948b94700125b52dfb68dd17c19f6326696c1df57f92c05ee857463c93ba1" @@ -973,9 +924,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ - "crossbeam-channel 0.5.2", + "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.8.1", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -1029,7 +980,7 @@ "home", "lazy_static", "log", - "micro-timer 0.4.0", + "micro-timer", "regex", "users", "which", diff -r 5acbc550d987 -r f59e49f6bee4 rust/hg-core/Cargo.toml --- a/rust/hg-core/Cargo.toml Sun Jun 05 07:16:29 2022 +0200 +++ b/rust/hg-core/Cargo.toml Thu Sep 01 16:51:26 2022 +0200 @@ -29,10 +29,10 @@ twox-hash = "1.6.2" same-file = "1.0.6" tempfile = "3.1.0" -crossbeam-channel = "0.4" -micro-timer = "0.3.0" +crossbeam-channel = "0.5.0" +micro-timer = "0.4.0" log = "0.4.8" -memmap2 = {version = "0.4", features = ["stable_deref_trait"]} +memmap2 = { version = "0.5.3", features = ["stable_deref_trait"] } zstd = "0.5.3" format-bytes = "0.3.0" diff -r 5acbc550d987 -r f59e49f6bee4 rust/hg-core/src/dirstate_tree/status.rs --- a/rust/hg-core/src/dirstate_tree/status.rs Sun Jun 05 07:16:29 2022 +0200 +++ b/rust/hg-core/src/dirstate_tree/status.rs Thu Sep 01 16:51:26 2022 +0200 @@ -728,9 +728,9 @@ ); }) } - } - if self.options.collect_traversed_dirs { - self.outcome.lock().unwrap().traversed.push(hg_path.into()) + if self.options.collect_traversed_dirs { + self.outcome.lock().unwrap().traversed.push(hg_path.into()) + } } is_ignored } else { diff -r 5acbc550d987 -r f59e49f6bee4 rust/hg-core/src/matchers.rs --- a/rust/hg-core/src/matchers.rs Sun Jun 05 07:16:29 2022 +0200 +++ b/rust/hg-core/src/matchers.rs Thu Sep 01 16:51:26 2022 +0200 @@ -791,7 +791,7 @@ dirs, parents, } = roots_dirs_and_parents(&ignore_patterns)?; - let prefix = ignore_patterns.iter().any(|k| match k.syntax { + let prefix = ignore_patterns.iter().all(|k| match k.syntax { PatternSyntax::Path | PatternSyntax::RelPath => true, _ => false, }); @@ -1094,6 +1094,31 @@ matcher.visit_children_set(HgPath::new(b"dir/subdir/x")), VisitChildrenSet::This ); + + // Test multiple patterns + let matcher = IncludeMatcher::new(vec![ + IgnorePattern::new(PatternSyntax::RelPath, b"foo", Path::new("")), + IgnorePattern::new(PatternSyntax::Glob, b"g*", Path::new("")), + ]) + .unwrap(); + + assert_eq!( + matcher.visit_children_set(HgPath::new(b"")), + VisitChildrenSet::This + ); + + // Test multiple patterns + let matcher = IncludeMatcher::new(vec![IgnorePattern::new( + PatternSyntax::Glob, + b"**/*.exe", + Path::new(""), + )]) + .unwrap(); + + assert_eq!( + matcher.visit_children_set(HgPath::new(b"")), + VisitChildrenSet::This + ); } #[test] diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-check-code.t --- a/tests/test-check-code.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-check-code.t Thu Sep 01 16:51:26 2022 +0200 @@ -30,6 +30,7 @@ Skipping contrib/packaging/hgpackaging/pyoxidizer.py it has no-che?k-code (glob) Skipping contrib/packaging/hgpackaging/util.py it has no-che?k-code (glob) Skipping contrib/packaging/hgpackaging/wix.py it has no-che?k-code (glob) + Skipping hgext/fsmonitor/__init__.py it has no-che?k-code (glob) Skipping i18n/polib.py it has no-che?k-code (glob) Skipping mercurial/statprof.py it has no-che?k-code (glob) Skipping tests/testlib/badserverext.py it has no-che?k-code (glob) diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-dirstate.t --- a/tests/test-dirstate.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-dirstate.t Thu Sep 01 16:51:26 2022 +0200 @@ -213,4 +213,35 @@ #endif - $ cd .. +Transaction compatibility +------------------------- + +The transaction preserves the dirstate. +We should make sure all of it (docket + data) is preserved + +#if dirstate-v2 + $ hg commit -m 'bli' +#endif + + $ hg update --quiet + $ hg revert --all --quiet + $ rm -f a + $ echo foo > foo + $ hg add foo + $ hg commit -m foo + +#if dirstate-v2 + $ uid=$(find_dirstate_uuid) + $ touch bar + $ while [ uid = $(find_dirstate_uuid) ]; do + > hg add bar; + > hg remove bar; + > done; + $ rm bar +#endif + $ hg rollback + repository tip rolled back to revision 1 (undo commit) + working directory now based on revision 1 + + $ hg status + A foo diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-git-interop.t --- a/tests/test-git-interop.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-git-interop.t Thu Sep 01 16:51:26 2022 +0200 @@ -119,6 +119,10 @@ and bookmarks: $ hg bookmarks * master 1:3d9be8deba43 + $ hg up master + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg bookmarks + * master 1:3d9be8deba43 diff even works transparently in both systems: $ echo blah >> alpha @@ -421,5 +425,8 @@ 7[tip][master] 1a0fee76bfc4 1970-01-01 00:00 +0000 test remove beta - - +This covers revlog.findmissingrevs() (issue6472) + $ hg log -r 'last(only(master))' -Tcompact + 7[tip][master] 1a0fee76bfc4 1970-01-01 00:00 +0000 test + remove beta + diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-issue6528.t --- a/tests/test-issue6528.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-issue6528.t Thu Sep 01 16:51:26 2022 +0200 @@ -177,14 +177,7 @@ $ cd .. $ mkdir repo-to-fix $ cd repo-to-fix -#if windows -tar interprets `:` in paths (like `C:`) as being remote, force local on Windows -only since some versions of tar don't have this flag. - - $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar -#else - $ tar xf $TESTDIR/bundles/issue6528.tar -#endif + $ tar -x < $TESTDIR/bundles/issue6528.tar Check that the issue is present (It is currently not present with rhg but will be when optimizations are added @@ -285,14 +278,7 @@ $ cd .. $ mkdir repo-to-fix-report $ cd repo-to-fix -#if windows -tar interprets `:` in paths (like `C:`) as being remote, force local on Windows -only since some versions of tar don't have this flag. - - $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar -#else - $ tar xf $TESTDIR/bundles/issue6528.tar -#endif + $ tar -x < "$TESTDIR"/bundles/issue6528.tar $ hg debug-repair-issue6528 --to-report $TESTTMP/report.txt found affected revision 1 for filelog 'data/D.txt.i' @@ -379,14 +365,7 @@ $ mkdir repo-to-fix-not-inline $ cd repo-to-fix-not-inline -#if windows -tar interprets `:` in paths (like `C:`) as being remote, force local on Windows -only since some versions of tar don't have this flag. - - $ tar --force-local -xf $TESTDIR/bundles/issue6528.tar -#else - $ tar xf $TESTDIR/bundles/issue6528.tar -#endif + $ tar -x < "$TESTDIR"/bundles/issue6528.tar $ echo b >> b.txt $ hg commit -qm "inline -> separate" $ find .hg -name *b.txt.d diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-nointerrupt.t --- a/tests/test-nointerrupt.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-nointerrupt.t Thu Sep 01 16:51:26 2022 +0200 @@ -27,8 +27,6 @@ > with ui.uninterruptible(): > testing.write_file(sync_file, b'%d' % os.getpid()) > testing.wait_file(done_file) - > # make sure we get rescheduled and the signal get a chance to be handled - > time.sleep(0.1) > ui.warn(b"end of unsafe operation\n") > ui.warn(b"%d second(s) passed\n" % int(time.time() - start)) > EOF @@ -42,14 +40,26 @@ > fi > "$RUNTESTDIR/testlib/wait-on-file" 10 "$SYNC_FILE" || exit 2 > kill -s \$SIG \`cat "$SYNC_FILE"\` - > sleep 1 - > touch "$DONE_FILE" > EOF #if no-windows $ chmod +x send-signal.sh #endif + $ cat > wait-signal.sh << 'EOF' + > #!/bin/sh + > (hg wait-signal 2>&1; echo [$?]) | { + > read line + > touch "$DONE_FILE" + > echo "$line" + > cat + > } + > EOF + +#if no-windows + $ chmod +x wait-signal.sh +#endif + Kludge to emulate timeout(1) which is not generally available. Set up repository @@ -60,11 +70,10 @@ > wait_ext = $TESTTMP/wait_ext.py > EOF - Test ctrl-c $ rm -f $SYNC_FILE $DONE_FILE $ sh -c "../send-signal.sh INT" & - $ hg wait-signal + $ ../wait-signal.sh interrupted! [255] @@ -75,7 +84,7 @@ $ rm -f $SYNC_FILE $DONE_FILE $ sh -c "../send-signal.sh INT" & - $ hg wait-signal + $ ../wait-signal.sh interrupted! [255] @@ -86,7 +95,7 @@ $ rm -f $SYNC_FILE $DONE_FILE $ sh -c "../send-signal.sh INT" & - $ hg wait-signal + $ ../wait-signal.sh shutting down cleanly press ^C again to terminate immediately (dangerous) end of unsafe operation diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-purge-ignored-directory.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-purge-ignored-directory.t Thu Sep 01 16:51:26 2022 +0200 @@ -0,0 +1,12 @@ +skip ignored directories if -i or --all not specified + + $ hg init t + $ cd t + $ echo 'ignored' > .hgignore + $ hg ci -qA -m init -d'2 0' + $ mkdir ignored + $ ls + ignored + $ hg purge -v --no-confirm + $ ls + ignored diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-revlog.t --- a/tests/test-revlog.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-revlog.t Thu Sep 01 16:51:26 2022 +0200 @@ -73,7 +73,7 @@ - hg commit -Am_ - remove some cache files - $ tar --force-local -xf "$TESTDIR"/bundles/test-revlog-diff-relative-to-nullrev.tar + $ tar -x < "$TESTDIR"/bundles/test-revlog-diff-relative-to-nullrev.tar $ cd nullrev-diff $ hg debugdeltachain a rev p1 p2 chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio readsize largestblk rddensity srchunks diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-rhg.t --- a/tests/test-rhg.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-rhg.t Thu Sep 01 16:51:26 2022 +0200 @@ -361,7 +361,7 @@ $ echo "maxsize = 1" >> $HGRCPATH $ $NO_FALLBACK rhg files > /dev/null $ cat .hg/blackbox.log - ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files exited 0 after 0.??? seconds (glob) + ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files exited 0 after * seconds (glob) $ cat .hg/blackbox.log.1 ????-??-?? ??:??:??.??? * @d3873e73d99ef67873dac33fbcc66268d5d2b6f4 (*)> (rust) files (glob) diff -r 5acbc550d987 -r f59e49f6bee4 tests/test-setdiscovery.t --- a/tests/test-setdiscovery.t Sun Jun 05 07:16:29 2022 +0200 +++ b/tests/test-setdiscovery.t Thu Sep 01 16:51:26 2022 +0200 @@ -44,8 +44,10 @@ searching for changes unpruned common: 01241442b3c2 66f7d451a68b b5714e113bc0 elapsed time: * seconds (glob) - round-trips: 2 + round-trips: 4 queries: 6 + queries-branches: 2 + queries-between: 4 heads summary: total common heads: 2 also local heads: 2 @@ -144,6 +146,8 @@ elapsed time: * seconds (glob) round-trips: 1 queries: 0 + queries-branches: 0 + queries-between: 0 heads summary: total common heads: 2 also local heads: 1 @@ -247,8 +251,10 @@ searching for changes unpruned common: bebd167eb94d elapsed time: * seconds (glob) - round-trips: 2 + round-trips: 4 queries: 3 + queries-branches: 1 + queries-between: 2 heads summary: total common heads: 1 also local heads: 1 @@ -351,8 +357,10 @@ searching for changes unpruned common: 66f7d451a68b bebd167eb94d elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -461,8 +469,10 @@ searching for changes unpruned common: 2dc09a01254d elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 1 @@ -565,8 +575,10 @@ searching for changes unpruned common: 2dc09a01254d 66f7d451a68b elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -676,8 +688,10 @@ searching for changes unpruned common: 66f7d451a68b elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -780,8 +794,10 @@ searching for changes unpruned common: 66f7d451a68b elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -891,8 +907,10 @@ searching for changes unpruned common: 66f7d451a68b elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -995,8 +1013,10 @@ searching for changes unpruned common: 66f7d451a68b elapsed time: * seconds (glob) - round-trips: 3 + round-trips: 5 queries: 4 + queries-branches: 1 + queries-between: 3 heads summary: total common heads: 1 also local heads: 0 @@ -1106,8 +1126,10 @@ searching for changes unpruned common: 7ead0cba2838 elapsed time: * seconds (glob) - round-trips: 4 + round-trips: 6 queries: 5 + queries-branches: 1 + queries-between: 4 heads summary: total common heads: 1 also local heads: 0 @@ -1216,8 +1238,10 @@ searching for changes unpruned common: 7ead0cba2838 elapsed time: * seconds (glob) - round-trips: 3 + round-trips: 5 queries: 4 + queries-branches: 1 + queries-between: 3 heads summary: total common heads: 1 also local heads: 0