Commit Graph

35203 Commits

Author SHA1 Message Date
Jun Wu
1c69fbf161 phase: backout "generate a push-race detection part on push"
It's causing issues with pushrebase. See https://fburl.com/hd5yz5w6
(grafted from 431521982e6add35955b5b5e8b74d9e317d9ca0c)
(grafted from 8e34bb24dfc0436a65724f30e601efd08b6f2abd)
(grafted from 72e1214d63bd8de353fd1e9d1ffedc4d338fadde)
(grafted from 3588155212ad313a7abd52e44f7ebde5fedbfe06)
(grafted from de91755cc930607220d0926effc69506ca85eabc)
(grafted from 8a44eb22d38c9a60ec6102d43f5b7b5ba60100ab)
(grafted from 396b563d93e5645d4a4ec60ecf56bd91ab28f3be)
(grafted from 14a53b4cf2b352e88a3bcfda5075f9679d067b61)
(grafted from 457c63699089270e6658e1186c70a5bc3426f183)
(grafted from 5e525709296041b77cda5d9f04176a31784afbb7)
(grafted from 80926668f057e712eb11fdc580f65501830f4f8c)
(grafted from a350ecb9b0e94a332fdfebb7f0bba72d87a687ca)
2018-01-03 05:35:56 -08:00
Jun Wu
25d57c4aa8 unamend: backout the core version
We need hash-preserving unamend. Therefore remove the core version.
(grafted from 86e055fbb0c974e041dbd72cd95df6e3b37a0f6b)
(grafted from 129f15c3acd81d4390212430ea6b500412bc74ab)
(grafted from fbb42eb996d5bcddac4ba4e86a915a3bc62b3e16)
2018-01-03 05:35:56 -08:00
Jun Wu
db43fda5b7 bundlerepo: always copy bundle parts before processing
This fixes treemanifest-infinitepush.
(grafted from 0364e7f0f9ef7eb92c7ca6f825cd252d1ecdac2e)
(grafted from c62ae0604a5124ae799f3ba7e309c23696fbd03d)
(grafted from e4b056930eb739c01d34a04e852643bf9c175d77)
2018-01-03 05:35:56 -08:00
Michael Bolin
4c9e29681a dirstate: change all writes to dirstatemap._map to go through one method
Summary:
This separates some concerns that were introduced in
https://phab.mercurial-scm.org/D1341.

In particular, this makes it easier for `eden_dirstate` to provide its own
implementation, which incidentally, does not use `dirstatetuple`.

Test Plan:
Ran this against a complementary change in Eden and verified that all of Eden's
integration tests pass.

Reviewers: mbthomas, durham, #hg-reviewers!

Subscribers: mercurial-devel

Differential Revision: https://phab.mercurial-scm.org/D1354
(grafted from eb6590eec45176982198e1a91ccae5821f65958c)
(grafted from 43c991e04a2a1e56918040db8e7c0ea49d3d0abe)
(grafted from 4926c8af95b45593749ef96a194a1a065d916b3c)
(grafted from 5c77cbac5f578e3924a76f7017bf5d34b6718757)
(grafted from 14cf809e89209da973d17b38a8cde9fe6659e424)
(grafted from 7ddca31c3875fdcaf7a2a64198bbb321ec1cb018)
2018-01-03 05:35:56 -08:00
Kostia Balytskyi
df1532996b windows: always build binaries with debug symbols in
(grafted from 67f37c3d0b13b68d2ec67c60ad4a49887a802dd1)
(grafted from 61cf4ec0aa662a3507aeaad5cec44037ac6956f2)
(grafted from 28de205abf73aba41723bc38e408d2939cefe2fb)
(grafted from 4498771b2622cf1aa3f1278f8e33b9e30c260f39)
(grafted from 2a32eb250049968c2d22c53c59be0973990543cb)
(grafted from ed1bf875a7d869508ec98c033fcb2f425d0bc521)
(grafted from 78e9a3e2a3667ac33251a769f9924a0352c84829)
(grafted from f608e564b0698a7704bbc041576a2472a8f15ccb)
(grafted from 2cab324128a009ad4d2e889ed25d283b1ed8d2ae)
2018-01-03 05:35:56 -08:00
Durham Goode
43c7bbda26 tests: drop devel warn lines
The hotfix that drops devel warnings lost it's test fixes in the latest rebase.
This adds them back.
(grafted from c8005d3b0d065f148672e799b4a05821dacf76f5)
(grafted from a0134574e5429c6c8b493270fe2e050e707401fb)
(grafted from 5d7d4d7c382dbdfdbee29f756ed89d2923716f06)
(grafted from 17a1c05f7dd723447808f146c47e778486e34c72)
(grafted from 94d0e522d808f5126a48be614838ffa125e2b001)
(grafted from 75c5f73252a5bae8742b0323ea689ca858baa753)
(grafted from 5c48dc2dea6a08c511f0b535eb4647d5c675bd30)
(grafted from 7817f8cc763105df882b96304285c7bf0763b1c4)
(grafted from 67951163d1fcc3f69542deae05cd8a118e2cdc6b)
(grafted from 4652ab4536eaf1fa8280ea40dfa40e2f6f18dcf1)
2018-01-03 05:35:56 -08:00
Kostia Balytskyi
e8eaa18f75 chgserver: import sys module
(grafted from 9e9ff559440e4733fda49ddeb1b9ce5e7c9660af)
(grafted from b14a9cd166ad6e48284ad887a7a47537ab4b1df4)
(grafted from 749be17f25a14a0a91d9e68e68df77a1b305eb7f)
(grafted from fd3caadd0a3f365551334f346875799964056354)
(grafted from ce1070bbc53c18d0afa9ba6fe000588c4fb3cf33)
(grafted from 834c5948156ceb0be31c40e95293277d9648f423)
(grafted from 24ec6b8d9402b53d38f9763b4706afaca4fb5b20)
(grafted from 0104f253d24f416e8034f302fd2bd57ec2cdbd3e)
(grafted from 893aadeea79010ca5e039a6bfaaca7471f7d9061)
(grafted from dc447bcdf1499da52b43723426aefd4b1cec4c01)
(grafted from 2db9cf55d1566b7273342b711073a57e075b11f3)
2018-01-03 05:35:56 -08:00
Jun Wu
acca580d61 chgserver: reduce idletimeout for non-common usecases
This should be effective to reduce the number of chg servers on OS X.
(grafted from 64cc416c50a4c54dfcebdbdcea73ea0a4dcc6b12)
(grafted from 4d35490df4c269132c43e5783d12697735ef1eae)
(grafted from 0f739f622491de9c6f7cfe3d8949843923291d95)
(grafted from ae11921088ae3ec06726719c7037ce7e9fb204a1)
(grafted from c1d14170449337f008d0f09e9c940309021236c8)
(grafted from e5d909b77f32f7d2e36c76cc318876e999d8cffe)
(grafted from 50a780fc7fb2ac422250d4aad426e0d010f5a290)
(grafted from f66d8cc7d1a72ece27e4ec682fa9e2401a50e2d2)
(grafted from a2fae201970502c50a7240a1fd8a597cc83f9db9)
(grafted from a102b2c1deb978bfc69be02730f9685062835691)
(grafted from dd3133eae2ba7268310115196c53135f0ccd3087)
2018-01-03 05:35:56 -08:00
Durham Goode
bd57c81881 config: disable config devel-warn
(grafted from 3b15fb83e1d940a65b107422c4c8e34c9ecabf87)
(grafted from ed74ebc92814da5283e2cedbcfcaabb3f0c16f40)
(grafted from fbe58b0351a20121f1cfd68c80b37ded8f94e81d)
(grafted from 89e8affd3e204663e9ec57bfb2653c9f253553ce)
(grafted from 5b88b03fc62991939872516eb04dd35583225157)
(grafted from 3e4861b738936daa58b881e07af850cb9ffa336e)
(grafted from b05e674be709c24b61540eccf692bee5ba88536b)
(grafted from 28bd58eace4db7dc6ce739e9594974b3fe0d62ca)
(grafted from 8ec38a43c525ee62e8f46dd4be03fcbf63273760)
(grafted from f91b3053b66e4425d21bdbe7399832beeccd497e)
(grafted from 6658c07390dc0c27ec8f91effeeccaab34ca7d20)
2018-01-03 05:35:56 -08:00
Kostia Balytskyi
93e8a3a685 tests_: simplify bundle2 requirement testing
Differential Revision: https://phabricator.intern.facebook.com/D4599415
(grafted from 35efb60b54b45e4bf8a281da35377ceabd9a2d0d)
(grafted from c976227665e29759c3bfd62a78b653815999f33c)
(grafted from ce81c51c90c6a7e67377b8368ff056be747ba808)
(grafted from f8ebd7782719ffb9f6c9bbdc740af4d628bc4c38)
(grafted from b683d8dc9677c2e4f24395f2ae849129bd4d6c81)
(grafted from 98300e5ba307c80f257e9d28b3afa7ef30d9a109)
(grafted from 6baa745cb3ea1a59c5e194b28d1db7e6a14da8fa)
(grafted from 0bd1e681e370164b2b58ed6329dcceab8a45ba1a)
(grafted from b88e051e45b3b34eebfe68b579d40e0848dd9164)
(grafted from d7d3ea27b8e834ca6a7ee86d67109f68dff8b627)
(grafted from 07f80547629b090986e880005f17af3470927034)
(grafted from f3ecb29d9b68d2adcf28a1986c070ceb85da8421)
(grafted from 23c77af0834657915d69f06623b8d831fc03dfbc)
(grafted from 6c0111953ffaacad3deb12f81bf05454f4c8bfc1)
(grafted from e6564dd98f0ab63736ba70500d60db0def7025f8)
(grafted from 3228fe1cc79cea64fa4cc674bf71f24123433ec7)
(grafted from 5a8c522c3db09d88bc6d45393c40256139ab4d42)
(grafted from 8d3f1b10a2bcda17dc55cdc97712bdc456acc406)
(grafted from 1f994f75a2a4f57c0f19981f71254e22963eaa04)
(grafted from 9bf91f3db246c40475f57657d82bd3f50e571e84)
(grafted from 2f88c5c88fd55b48fc0c30aa2abd701b2b7b9d7d)
(grafted from fab2b4f5d6e855c657f69dccb08f720bab4a82b1)
(grafted from e2fc694c13c74f7948680d653568e62d7010c4f4)
(grafted from d474fcb2eb58404a689024cc503abe28136c8395)
(grafted from 8b2233600993b96119186ddbfb16232c48247fe1)
(grafted from ba5486b8c838e72c35cb437cbdf0add5b2100c6b)
(grafted from 42699d89bd0da2e204075246eb4c27baa642fc2a)
(grafted from 02d0e17b6b7f938ba58f26d84191ef347bcdbd17)
(grafted from 9f9bba61993924c1c96a5dd15c0c50895ec8e525)
(grafted from c3bc9b3844d852ba7365574d3fbd4aa8e2763aa0)
(grafted from fc5d31337891e9eb218f100b177f8ead2f6353da)
(grafted from baad4585f877267a3264dc4c70e8cd75bfc6688e)
(grafted from 6d46603cea8fc9d04628817ae1e239b38e62ce62)
(grafted from c54d6c0b3b3dae086b8ad186e178a1e137b57cae)
(grafted from 1755e00c824c7d5b30a7daff573c3ab1e2f1fd2c)
(grafted from 81826a9db3f5f9c8e760d2b09afb06d9f74a1609)
(grafted from 73bce05fdb8cb8f8739bd2c90741ac7d422e24a4)
(grafted from c942744744e071464d3a476e57fd74f922fca497)
(grafted from 77b797a46b52249b26da6d30a0c63e381d1af0fe)
(grafted from 9b09bef68b1aa1ef3804aec330e793dcc7ada944)
(grafted from fefea5a4a24f0c8219b4b0e2b0cc70b4dfadfde2)
(grafted from 3428e6ab54999e70b38a5ee62291c8774bae7e4a)
(grafted from dd57d190fa75589d800beed188c5a381678cca3c)
(grafted from 9005ba0d5e6420ed8d048c08fc38a9682e536a26)
(grafted from daeb4bf87b68309c4c3c608853affe2adeb9fcbd)
(grafted from 6ad984397b22666ecebc2ff737b0d52ffb95b9b7)
(grafted from bd1f17920c18d88b6c4dd451f76699f6f665bc32)
(grafted from 31a92a48004ab6a4bfc389f674cacf549703e2b9)
(grafted from 7e80636f1529b8902292980912586f1db8598a83)
(grafted from 55ecf6a9f9bc89fd0330c4684f225e213be18033)
(grafted from 3361f627a0b8cb7666a529494ed80a0e1d7a365c)
(grafted from f51abda49b2d33a936567b786ce785c97e4b9c64)
(grafted from 5c01ed3bf394351e116fcece1fbd9e1b19f57ea4)
(grafted from 9503cdb335a95950235b7871978bcb6cb3e87222)
(grafted from 220d31489a377997e71d5766f9f29b30fd1662e1)
(grafted from 97483c98cf95113e95d03bf69f3307f92ef232a4)
(grafted from b3e9f8f43b4dd76422c20234acf76ec82a9c5f5b)
(grafted from 831d9f1b2940b6944fc1015c57f348a22de7a149)
(grafted from 051e1081a45e85944ea4414174a452e208904371)
(grafted from 9fb7c4c494166dee97bb04826cf71b0fa774cd2b)
(grafted from bfb4cb9c08c582323ceb82eb5cd2bcaeaf70329c)
(grafted from ab548e4f700a65bd24fbbbdb43f971eb5da73be5)
(grafted from 8870c382cfecbcbd4f8cec3ca0cb8759a43cf31c)
(grafted from 8e09e732b846b42beb49866d3785572df89f1e38)
(grafted from 951064f2a2980a00d085fce0d207c0225447b5d5)
(grafted from fce58e29903c2ef95b0481c11d59e5ef4fb56d15)
(grafted from 391f610601eeb542b9aa2bed3f541609772b8599)
(grafted from 681ea78b8ae1c29589a49a5bb74e0f3dff30e1d7)
(grafted from add76a9d94ee5d7b829be52458d1dfb65585c2d3)
(grafted from 475ae856da634e53637131717723fe895be0def6)
(grafted from b22d9651b8a7957c8275301d79f6ba62fc5a38f4)
(grafted from 3bf8c57dfd2fb432f4d499014dd9ab4ced26133d)
(grafted from 47718758ce30722c7a6e4d4dc324bdef20d45163)
(grafted from 59270eeea34cc381933ce50600983819e8a35794)
(grafted from 5397fdfa10d831ba358925e4a32faa23fed18173)
(grafted from de9cc0df3d097d25a8a218010e4a8370373f5068)
(grafted from e7f5a21e9dd2f2a4527943f5dad0d597c0f2b7a4)
(grafted from 5c383ebe8f57ccabf1ede74905a951631c7e32de)
(grafted from bf4ad8ffd761b575a843fe5f8370fb4a5c1a2eb9)
(grafted from 8523ff03bfa8708eefb667d9df64fba58e5a9f8c)
(grafted from 5220db13df5a745d113ebba89185ac42f4f890d1)
(grafted from 8a66c7352d03e545e8cbe80a1f84122624f2035c)
(grafted from 94cf7cdbce472e0694582b18acd6f2fc3f46e839)
(grafted from 29575e1ce294a235a1df9136a6b807b8947a20cd)
(grafted from d23b69b215e4201e90b600797b41ab362e7c7044)
(grafted from 386af1481e70f160f6b3d0e08ba8934372446b68)
(grafted from fc69c78396e9ab15fd961540204db004db933799)
(grafted from 8a8e35573518b72937af626999b885c6f6491683)
(grafted from 9fb083f031e7358fdb73ef6fac5278f841f2b084)
(grafted from aa20fd817539bdd8d15adb340ef714121dd273b2)
(grafted from 2b68df547651d1727b4320f2ffbb8fded3ab49ac)
(grafted from ff3bf5623756d977c88a25d546b34160229177d3)
(grafted from fd5f39d43bac7fa2c8a1e5785e3dc060f539277c)
(grafted from 8871ae64560384cf7693a5c32333b90e6774ba2a)
(grafted from 3a01e81a1a78138af5892129f447bee53fb85a73)
(grafted from ca1bc04c027005d42b4dc5eee52c3874a13790df)
(grafted from c68f7302ce65f055e205ed701490529571aaaa32)
(grafted from c7e264107eb95c8ab01804699775374b43bcbd84)
(grafted from 3748e7898899c994a4b5019b66f705e2c7a8d2eb)
(grafted from fe2d08b837334f9b3b1bb3a18a28f010a02c0340)
(grafted from dd29c6c56f0de76550d2f61671eb05da6a03fbc3)
2018-01-03 05:35:56 -08:00
Durham Goode
f13c34a644 serve: move hg-ssh readonly logic into hg serve
Recently hg-ssh was changed to block writes via in-memory hook configuration
instead of by passing config hooks, and dispatch.py blocks any invocation of hg
serve --stdio that has options passed. We have infrastructure that sets up read
only serve processes without using hg-ssh, and it was broken by this change.

Let's add a --read-only option to hg serve so non-hg-ssh solutions can still
launch hg in read-only mode. This makes it also work with non-stdio serve
processes as well.
(grafted from 7a0ed9aad8526f689343a5a02aa4a66e5f3be1f2)
(grafted from bf33f750447d8b0dfeae2a311e1d1eb93e19d6a0)
(grafted from 9ada6a6e4ac2a92325592cd58edd9160e17c9e31)
(grafted from 50e676e99c3b7cc929ceaaebbd3c684a8a58f9d8)
(grafted from 01833a49fa4dca204dc0e606f21279530925307c)
(grafted from 301af2e1a42fe912acf90ae9a87ca6a20ce5cd5d)
(grafted from 6ae2eaad3edbfdfb04ac5880a86341e69980529c)
(grafted from fcdedd417b29d28797840fc2393e0ff846fa54c8)
(grafted from ddda3705adfb2ac103f506d694d2b30028dfaca9)
(grafted from 138e3cf3bc394c4ff507341a390e1876c7104042)
(grafted from f8073d595e87086213525dbb642962b84158ee9a)
(grafted from 96bac04dc722030250a53616f0fb55125829f25e)
(grafted from 2aeed48cc3b3324b564343d8515aed1ecec69b14)
(grafted from 4fb2e02a273c868febdae9530b0a07a53a0e92a7)
(grafted from c57b28835f0b880c075d5b8aa99ddb9da54b21b1)
(grafted from 35fd78b021bec96db63e8dd99f98efc3b2342380)
(grafted from 9ac14f96c9a82068f07a709374f359283c206791)
(grafted from 4b64c191a9aacd52ea58ae8ec943605667759398)
(grafted from 1db390a79e32db12dde7a225e26b86ed245f9473)
(grafted from 9a999ed1ce50af8e5fa03dc270488c37304d8c94)
(grafted from b6791f2eb83f176192c9df50c736bc4c54fab5a6)
(grafted from 4b6e87c5be38d9971399e4ad989e4261f283b93a)
(grafted from ae660c075b4af0849d1ff5d36404ef66aeea9933)
(grafted from ff0f3bf0834b38a527654495369cd538ca8744f4)
(grafted from bff8177767c9023295ff93bc520114bb909952a8)
(grafted from 05a833e4071b9da7b447669f6bd8a3f62c1d3c27)
(grafted from be8ab299731fb8295efbe10a014798c7a177d4a0)
(grafted from beec2bc2ebd9eaf7093bba5fca8fef07c669d970)
(grafted from 03d88ba3cd8795d17a99dc1b50ac55e1937d38e1)
(grafted from 92a33bc0d275a96c61553f8bccefcd32f1360931)
(grafted from 3d37833f54e37356f3e32db2ad8fb2ffe4fa14f2)
(grafted from 77fa3393787a9410e14afc26465abb5561253075)
(grafted from 9d908f86cc7986c167cef5cdccaabb565fd2bc04)
(grafted from 0dbc2023c42f72aea6b608e5111725163dcbb64b)
(grafted from 3acf4e9bb718617efaf31abcba583b9b7be2559d)
(grafted from c671696a06e418f5f040427efb3e51fe4c9fa6cd)
(grafted from 309f11e682eb3c6fa497bf767cbcbef3b0dbaf4b)
(grafted from 4f828ef4b70a6a16fe747d5f6393042bff204b5e)
(grafted from 71193e84a71d029dedc744882978285cbe5722e6)
(grafted from 2929832c61c9727bd884f94da5afa29e80334a96)
(grafted from 2ff8a9f1761f82ffa8ebd2a96d86f7de7c712d9c)
(grafted from b438cb1e6cff36e7e197da7669def8a5e528053c)
(grafted from a9ed103481b779af9e160d2b81a9bfe81cc7d173)
(grafted from d139e95d22dc811002dafef1ecaac5dac99825fe)
(grafted from b4e41a9f2c3a6328ada72810407686d11833347c)
(grafted from 2b3826c7b3bdf669b397f1ad31ae106a05d7b05b)
(grafted from 23737fb5e1d6874cf79a1eb841dd1614c0295a1b)
(grafted from 69588396b17d3dafeece8bc9e2101559d871d9fb)
(grafted from b3252a277a53b1657e6bcf31359b413d2becffcc)
(grafted from 12c8e6062d34d4d6cf0b0128084278800a1ed8f7)
(grafted from 8ce5c67748afbe6e82fc3f822e35ddc58cb03694)
(grafted from b0f656426efcf9a70386b1c781507f40ab95af49)
(grafted from 147ae96993dcffbed2f39f31795ef3d60631d43f)
(grafted from 2ecb34a565accf638e6004c59aa5b2d2361f9428)
(grafted from 6bfc53cd4c479b4e789d4086a2c7c2f4045a288f)
(grafted from bf73f92394a079928db6d4b0b3e7aa78448af91a)
(grafted from b69a654342339eb740527fc84af523eb53edeb71)
(grafted from 3f090f44e8a33cde8d5708454a5292d0976269e6)
(grafted from ac4432275d3b750405e53f67b1267579764f4fee)
(grafted from dbfd0bce0eded53dc7d824393f03ddd2f2e693fb)
(grafted from bf7087d072ca6c5d5dac2ddef4c43339d02f6133)
(grafted from b9d63feb8c90f83e74f3e9a89328419c81088082)
(grafted from 718e93a4e545f3e16d09c66f210a567427f1068a)
(grafted from e0ba57c8bf13ccc45b7eaa62d64e03038cd002ad)
(grafted from 5c849011421ad00ef190c2bf15c640656424f681)
(grafted from e833de714167fe6039b42f1cd1890b0470a32ea2)
(grafted from 480872890137130564910a29ed8ef3890810f0c4)
(grafted from 6224dc455a24542cf7d55721fceb14a08e92d391)
(grafted from 24ced5d2b0d6fb837a3994a80ef808e29f62ccc5)
(grafted from 452eb5c8624cc22867fafa692c6c7905e46da27a)
(grafted from cdc9f1b121878c26c986eca2233b5d03ea50ad74)
(grafted from 8b3a45fe3a612fdbee3a1f291f41bfaadfd16a6f)
(grafted from 2a07c0b3cb9785a9f8d5d669b885044e4d4544b1)
(grafted from 56d892df53cfdf3a13f38cd386a437ea59ef0d77)
(grafted from b63c65fad2d28a86a3bc3871d58e45019b11e6a1)
(grafted from 8618bd56f309543d8577000a4310fdf8648f1087)
(grafted from e04c7ddddc5cc40d6347d2336b81d5be2289243e)
(grafted from 5951fe6318d02a9b739f0174f3aecc3d5eead31c)
(grafted from 0f4d380f641a55791ca9eef13cd49da24cf40a7a)
(grafted from d7ecf3376e572d77b670cbe2184370b08d38dcf7)
(grafted from a75534c9e6d7a481303096e44e265593fb5b0b2f)
2018-01-03 05:35:56 -08:00
Mateusz Kwapich
acd4d4a638 debugcommands: fix an obvious type error
Summary: It surprising that this bug lasted for over a year.

Test Plan:
there's no tests for it. Do we have any tooling for simulating the inconsitent
state?

Reviewers: phillco, #mercurial

Reviewed By: phillco

Subscribers: baq

Differential Revision: https://phabricator.intern.facebook.com/D6651663

Signature: 6651663:1514938468:715869f443e24d7921c9a67b32d36c66fdf61a92
2018-01-03 04:45:18 -08:00
Augie Fackler
eed6eb51f4 merge with stable 2017-12-19 16:27:24 -05:00
Wojciech Lis
75dbf9e567 worker: handle interrupt on windows
After applying suggestions from https://phab.mercurial-scm.org/D1564
to catch all exceptions in the same way I actually broke the handling of
KeyboardInterrupt on windows. The reason is that KeyboardInterrupt doesn't
dervie from Exception, but BaseException:
https://docs.python.org/2/library/exceptions.html starting from python 2.5

Test Plan:
Run hg on windows and ctrl-c during a large update. No random
exceptions from threads surface in the shell. Previously we'd nearly always get
stack traces from some of threads

Run tests ./run-tests.py
[...]
Failed test-convert-svn-encoding.t: output changed
# Ran 622 tests, 41 skipped, 1 failed.
python hash seed: 2962682116

The test failing seems to have nothing to do with the change and fails on base
revision as well

Differential Revision: https://phab.mercurial-scm.org/D1718
2017-12-18 15:18:37 -08:00
Jun Wu
bf8f10f537 lfs: fix committing deleted files caused by 02c30db0443d
02c30db0443d (lfs: add a repo requirement for this extension once an lfs
file is committed) introduced a regression that prevents committing file
deletion.  This patch fixes that.

Differential Revision: https://phab.mercurial-scm.org/D1717
2017-12-18 14:37:00 -08:00
Augie Fackler
2cd19dc584 tests: update expected output of svn encoding test
The changes I see on the buildbot match the ones I see on my laptop,
and all look reasonable.

Differential Revision: https://phab.mercurial-scm.org/D1713
2017-12-18 13:15:10 -05:00
Matt Harbison
9ffbf863b8 run-tests: use context managers for file descriptors
I've seen the following error a few times recently when running the tests with
`yes | ./run-tests.py --local -j9 -i`:

Errored test-add.t: Traceback (most recent call last):
  File "./run-tests.py", line 821, in run
    self.runTest()
  File "./run-tests.py", line 910, in runTest
    if self._result.addOutputMismatch(self, ret, out, self._refout):
  File "./run-tests.py", line 1774, in addOutputMismatch
    rename(test.errpath, test.path)
  File "./run-tests.py", line 571, in rename
    os.remove(src)
WindowsError: [Error 32] The process cannot access the file because it is being
 used by another process: 'c:\\Users\\Matt\\projects\\hg\\tests\\test-add.t.err'

This change doesn't fix the problem, but it seems like a simple enough
improvement.
2017-12-17 14:06:49 -05:00
Yuya Nishihara
3985a8fdb4 diff: disable diff.noprefix option for diffstat (issue5759)
We could use patch.diffhunks() instead of patch.diff() to get filenames
without parsing patch content, but that isn't always possible because we
sometimes feed raw patch data to patch.diffstat().
2017-12-17 18:43:05 +09:00
Yuya Nishihara
e6f35d04b2 hgweb: disable diff.noprefix option for diffstat
Copied from 62d04dd7ece9.
2017-12-17 18:28:15 +09:00
Yuya Nishihara
788c9042f0 debugssl: convert port number to int (issue5757)
It doesn't use util.getport(), which may resolve service name to port number.
2017-12-14 22:07:46 +09:00
Matt Harbison
9638df605c run-tests: add substitution patterns for common '\' path output on Windows
The goal is to reduce the amount of hand tuning of new/changed tests that is
required on Windows.  Since the OS prints the proper paths everywhere else, this
is limited to Windows.  These are based on the check-code rules that were
dropped in 217bd5cb0914.

There are some minor tweaks, because those were trying to detect '/' paths
without a '(glob)' at the end, whereas these detect '\' paths. Also, it looks
like the 'no changes made to subrepo' one was broke, because the path to the
subrepo has been getting output but was not in the pattern.  End anchors are
dropped because '(glob)' is no longer required, but '(feature !)' annotations
are a possibility.

The 'saved backup bundle' pattern dropped from run-tests.py was simply carrying
over the first capture group.  The replace() method runs prior to evaluating
'\1', but it wasn't doing anything because of the 'r' prefix on '\\'.

The 'not recording move' entry is new, because I stumbled upon it searching for
some of these patterns.  There are probably others.
2017-12-12 20:11:13 -05:00
Boris Feld
18540b6753 histedit: preserve active branch while histediting
The branch information was properly preserved in the changeset, but the
"active" branch of the working copy could be lost (the branch of the base
being used).

Histedit used to behave properly in this regard but the case was not tested
and regressed 4 years ago in c038baa4b6f0.
2017-12-12 18:22:11 +01:00
Anton Shestakov
e82ef1ea39 templater: fix "one arguments" 2017-12-12 16:29:26 +08:00
Augie Fackler
6f9e783026 tests: write and use a custom helper script to avoid find's -printf
-printf on find is a GNU-ism and will be banned in an upcoming
check-code change.

Differential Revision: https://phab.mercurial-scm.org/D1597
2017-12-05 16:55:41 -05:00
Matt Harbison
ffc3cccdf4 convert: restore the ability to use bzr < 2.6.0 (issue5733)
This effectively conditionalizes 7ac081713920.  Some Linux distributions (like
CentOS 7) use really old versions, and the change referenced was causing
exceptions to be thrown.

Even though the deprecation warning says 'since 2.5.0', it wasn't marked as such
in 2.5.1, but is by 2.6.0.  This was tested with 2.4.2 and 2.6.0 with
PYTHONWARNINGS=::DeprecationWarning, and both paths were exercized.
2017-12-01 23:27:08 -05:00
Kevin Bullock
83140eecbb Added signature for changeset f51ae48a3fd9 2017-12-01 13:49:47 -06:00
Boris Feld
cf4679a55d debuginstall: add a line about re2 availability
Using re2 engine can massively speed up regexp. We make it simpler to check if
it is available in a given install.
2017-11-27 18:48:36 -05:00
Matt Harbison
17e2258c44 tests: fix the check-code rule for testing non-existent files
I missed this in d3e2086bc411.
2017-12-16 12:34:40 -05:00
Matt Harbison
44a151c9d6 tests: convert the 'file://\$TESTTMP' rule to an automatic substitution
The rule only triggered on non Windows platforms, even though Windows also
required an adjustment.  Automatic seems better.

The aggressive globbing in test-subrepo-svn.t was found and rewritten by the
substitution.
2017-12-16 11:32:10 -05:00
Mark Thomas
107956c510 merge: check created file dirs for path conflicts only once (issue5716)
In large repositories, updates involving the creation of many files check the
same directories repeatedly in the wctx manifest.  Move these checks out to a
separate loop to avoid repeated checks hitting the manifest.

Differential Revision: https://phab.mercurial-scm.org/D1226
2017-11-24 12:53:58 -08:00
Mark Thomas
2f4962c2a4 merge: cache unknown dir checks (issue5716)
As mentioned in D1222, the recent pathconflicts change regresses update
performance in large repositories when many files are being updated.

To mitigate this, we introduce two caches of directories that have
already found to be either:

  - unknown directories, but which are not aliased by files and
    so don't need to be checked if they are files again; and

  - missing directores, which cannot cause path conflicts, and
    cannot contain a file that causes a path conflict.

When checking the paths of a file, testing against this caches means we can
skip tests that involve touching the filesystem.

Differential Revision: https://phab.mercurial-scm.org/D1224
2017-11-24 12:53:58 -08:00
Yuya Nishihara
5ff5d9b38c dispatch: add HGPLAIN=+strictflags to restrict early parsing of global options
If this feature is enabled, early options are parsed using the global options
table. As the parser stops processing options when non/unknown option is
encountered, it won't mistakenly take an option value as a new early option.
Still "--" can be injected to terminate the parsing (e.g. "hg -R -- log"), I
think it's unlikely to lead to an RCE.

To minimize a risk of this change, new fancyopts.earlygetopt() path is enabled
only when +strictflags is set. Also the strict parser doesn't support '--repo',
a short for '--repository' yet. This limitation will be removed later.

As this feature is backward incompatible, I decided to add a new opt-in
mechanism to HGPLAIN. I'm not pretty sure if this is the right choice, but
I'm thinking of adding +feature/-feature syntax to HGPLAIN. Alternatively,
we could add a new environment variable. Any bikeshedding is welcome.

Note that HGPLAIN=+strictflags doesn't work correctly in chg session since
command arguments are pre-processed in C. This wouldn't be easily fixed.
2017-11-23 22:17:03 +09:00
Yuya Nishihara
b0d1fec38b fancyopts: add early-options parser compatible with getopt()
The next patch will add a flag for strict parsing of early options, where
we'll have to parse all early options at once instead of processing them
one-by-one by dispatch._earlygetopt(). That's why I decided to hook
fancyopts().

All dispatch._early*opt() functions is planned to be replaced with this
function. But in this stable series, only the strict mode will be handled
by fancyopts.earlygetopt().
2017-11-23 22:04:53 +09:00
Matt Harbison
c1ef7c5a7a largefiles: pay attention to dropped standin files when updating largefiles
Previously, the largefile for a dropped standin would be deleted here, and then
restored from the cache.  This had the effect of clobbering uncommitted changes
if a revert caused the file to be forgotten, which is not what happens with a
normal file.  Now the removal and update is skipped for dropped largefiles, and
the corresponding standin is deleted from disk.

This was noticed when working on issue5738 because the forgotten standin files
were left behind, and that changes the behavior of the next rename to that
directory.  My first attempt was to cleanup the standins before calling this.
That failed, because this function deletes the largefile if the corresponding
standin is missing.

This function is called by the revert command, merge (and therefore update), and
patch, via the scmutil.marktouched() override.  So it should be pretty narrow in
scope.

I didn't mark issue5738 as fixed because the move related issues can still
happen if the main tree and the .hglf subtree get out of sync somehow.  I don't
see an easy fix for that, but that should be an edge case.  If whoever queues
this thinks it is good enough to close out the bug and can cram it into the
summary, go for it.
2017-11-12 23:45:14 -05:00
Matt Harbison
9d58e7d4a4 test-largefiles: demonstrate problems with renaming and reverting a directory
These things were uncovered looking at issue5738.

First, if the destination directory exists under .hglf, the source is moved
under the destination instead of renaming the last component for `hg mv srcdir
dstdir`.  This is extra confusing, because it occurs even if the user visible
destination (i.e. the path _not_ under .hglf) does not exist.

Additionally, when a largefile is forgotten via revert, any modifications end up
getting clobbered.  For normal files, the forgotten file is left unchanged, as
shown by test-import.t.  The forget command on a largefile will correctly leave
the file unmodified.
2017-11-12 00:24:38 -05:00
Matt Harbison
d913b0c5b9 tests: add globs for Windows 2017-11-11 12:37:05 -05:00
Yuya Nishihara
d46d87090c cat: record the current behavior of wildcard matches in subrepos
Mercurial subrepos support any match patterns.
2017-11-25 15:29:34 +09:00
Augie Fackler
285d5a2a3b merge with i18n 2017-11-29 17:49:08 -05:00
Matt Harbison
40cf71ae24 convert: avoid wrong lfconvert defaults by moving configitems to core
The `hg lfconvert --to-normal` command uses the convert extension internally to
work its magic, but that produced devel-warn messages if the convert extension
wasn't loaded by the user.  The test in 658e7a6d93e0 (modified here) wasn't
showing the warnings because the convert extension was loaded via $HGRCPATH.
Most of the config options default to None/False, but 'hg.usebranchnames' and
'hg.tagsbranch' are supposed to default to True and 'default' respectively.

The first iteration of this was to ui.setconfig() inside lfconvert, to force the
convert extension to load.  But there really is no precedent for doing this, and
check-config complained that 'extensions.convert' isn't documented.  Yuya
suggested this alternative.

This partially backs out 448e09d8859d.
2017-11-28 23:20:08 -05:00
Boris Feld
cf402c02f7 tr-summary: keep a weakref to the unfiltered repository
Repoview can have a different life cycle, causing issue in some corner
cases. The particular instance that revealed this comes from localpeer. The
localpeer hold a reference to the unfiltered repository, but calling 'local()'
will create an on-demand 'visible' repoview. That repoview can be garbaged
collected any time. Here is a simplified step by step reproduction::

    1) tr = peer.local().transaction('foo')
    2) tr.close()

After (1), the repoview object is garbage collected, so weakref used in (2)
point to nothing.


Thanks to Sean Farley for helping raising and debugging this issue.
2017-11-24 21:51:41 -05:00
Wagner Bruna
9766674d68 i18n-pt_BR: synchronized with f1d5a55d6a57 2017-11-21 13:50:25 -02:00
Yuya Nishihara
52b06fe73d dispatch: verify result of early command parsing
Before, early options were stripped from args, and because of this, some
kind of parsing errors weren't reported. For example,

  $ hg ci -m -Ra file

would execute "hg ci -m file" in repository "a".

This patch fixes the issue by parsing early options again by real getopt-based
parser, and verifying the results. If the early parsing appears wrong, hg just
aborts. The current error message seems not nice, and should be improved, maybe
in V2 or follow-up.

Note that this isn't a security feature because we can still do anything by
using shell aliases.
2017-11-11 12:40:13 +09:00
Yuya Nishihara
fccba4aa77 dispatch: convert non-list option parsed by _earlygetopt() to string
So we can easily compare it with the corresponding getopt() result.

There's a minor behavior change. Before, "hg --cwd ''" failed with ENOENT.
But with this patch, an empty cwd is silently ignored. "hg -R ''" has always
worked as such, so -R has no BC.
2017-11-11 17:55:15 +09:00
Yuya Nishihara
f9dd555dd4 dispatch: add option to not strip command args parsed by _earlygetopt()
This allows us to parse the original args later by full-blown getopt() in
order to verify the result of the faulty early parsing. Still we need the
'strip=True' behavior for shell aliases.

Note that this series is RFC because it seems to change too much to be
included in stable release.
2017-11-11 16:46:41 +09:00
Yuya Nishihara
333fc1d401 dispatch: fix early parsing of short option with value like -R=foo
Before, -R=foo was parsed as '-R' 'foo', which disagrees with the standard
getopt behavior.
2017-11-14 00:25:59 +09:00
Yuya Nishihara
82ae4401fe dispatch: abort if early boolean options can't be parsed
Perhaps we'll need to restrict the parsing rules of --debugger and --profile,
where this patch will help us know why the --debugger option doesn't work.

I have another series to extend this feature to --config/--cwd/-R, but even
with that, shell aliases can be used to get around the restriction.
2017-11-11 14:02:41 +09:00
Yuya Nishihara
8f01395e02 dispatch: stop parsing of early boolean option at "--" 2017-11-10 22:27:26 +09:00
Yuya Nishihara
01e537d4b9 dispatch: extract stub function to peek boolean command option
We should at least stop parsing at "--". The 'name' argument is passed for
future extension.
2017-11-10 22:22:39 +09:00
Yuya Nishihara
7137d3d976 dispatch: do not drop unpaired argument at _earlygetopt()
Before, "hg log -R" just worked.
2017-11-11 12:09:19 +09:00
Yuya Nishihara
0704342965 amend: update .hgsubstate before committing a memctx (issue5677)
This is a minimal copy of localrepo.commit(). As the current amend() function
heavily depends on the wctx API, it wasn't easy to port it to use a separate
status tuple. So for now, wctx._status is updated in-place.
2017-11-04 20:07:40 +09:00