Mon, 18 Jan 2021 19:16:49 +0530 share: move share safe functionality out of experimental
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jan 2021 19:16:49 +0530] rev 46334
share: move share safe functionality out of experimental The share-safe functionality is complete and all configuration options are implemented. The behavior is well discussed on mailing list and in reviews. Let's unmark this as experimental to solve a chichen and egg issue. Differential Revision: https://phab.mercurial-scm.org/D9823
Fri, 15 Jan 2021 12:08:07 +0530 share: rename share-safe warning config
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jan 2021 12:08:07 +0530] rev 46333
share: rename share-safe warning config Config introduced in previous patch was `share.source-safe-mismatch`. Let's rename the warn as `share.source-safe-mismatch.warn`. While we are here, made sure we have different configs for upgrade and downgrade. Differential Revision: https://phab.mercurial-scm.org/D9786
Mon, 18 Jan 2021 21:37:20 +0530 share: rework config options to be much clearer and easier
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jan 2021 21:37:20 +0530] rev 46332
share: rework config options to be much clearer and easier Recently I implemented various boolean configs which control how to behave when there is a share-safe mismatch between source and share repository. Mismatch means that source supports share-safe where as share does not or vice versa. However, while discussion and documentation we realized that it's too complicated and there are some combinations of values which makes no sense. We decided to introduce a config option with 4 possible values which makes controlling and understanding things easier. The config option `share.safe-mismatch.source-{not-}safe` can have following 4 values: * abort (default): error out if there is mismatch * allow: allow to work with respecting share source configuration * {up|down}grade-abort: try to {up|down}grade, if it fails, abort * {up|down}grade-allow: try to {up|down}grade, if it fails, continue in allow mode I am not sure if I can explain 3 config options which I deleted right now in just 5 lines which is a sign of how complex they became. No test changes demonstrate that functionality is same, only names have changed. Differential Revision: https://phab.mercurial-scm.org/D9785
Thu, 14 Jan 2021 21:34:12 +0530 localrepo: disallow share if there is a version mismatch by default
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Jan 2021 21:34:12 +0530] rev 46331
localrepo: disallow share if there is a version mismatch by default Earlier we used to allow shares which don't use share-safe mechanism to access repository which uses share-safe mechanism. This defeats the purpose and is bad behavior. This patch disallows that. Next patch will introduce a config option to allow that and have clearer understanding around various options. Differential Revision: https://phab.mercurial-scm.org/D9784
Mon, 18 Jan 2021 19:50:21 +0530 upgrade: re-read current requirements after taking lock
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 18 Jan 2021 19:50:21 +0530] rev 46330
upgrade: re-read current requirements after taking lock Since we are writing to repository, it's better to re-read after taking the lock. Differential Revision: https://phab.mercurial-scm.org/D9822
Thu, 14 Jan 2021 21:29:46 +0530 upgrade: take lock only for part where it's required
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Jan 2021 21:29:46 +0530] rev 46329
upgrade: take lock only for part where it's required The final config calculation code does not require a lock, only writing it back does require one. Differential Revision: https://phab.mercurial-scm.org/D9783
Mon, 18 Jan 2021 19:19:47 +0100 clang-format: reorder includes to appease the formatter
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 18 Jan 2021 19:19:47 +0100] rev 46328
clang-format: reorder includes to appease the formatter The bad order was introduced in d0225a22040c. Differential Revision: https://phab.mercurial-scm.org/D9829
Mon, 18 Jan 2021 01:15:10 -0500 run-tests: catch a Windows specific error when testing for a free socket
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jan 2021 01:15:10 -0500] rev 46327
run-tests: catch a Windows specific error when testing for a free socket I'm not sure why this only happens with py3, but this error code doesn't map to any of the 3 currently being handled, and kills `run-tests.py` before it can run any tests when it happens: OSError: [WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions The documentation[1] says this can happen if another process is bound to the address with exclusive access. This seems to keep it happy. [1] https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2 Differential Revision: https://phab.mercurial-scm.org/D9816
Mon, 18 Jan 2021 00:50:01 -0500 run-tests: work around the Windows firewall popup for server processes
Matt Harbison <matt_harbison@yahoo.com> [Mon, 18 Jan 2021 00:50:01 -0500] rev 46326
run-tests: work around the Windows firewall popup for server processes Windows doesn't have a `python3` executable, so cc0b332ab9fc attempted to work around the issue by copying the current python to `python3.exe`. That put it in `_tmpbindir` because of failures in `test-run-tests.t` when using `_bindir`, which looked like a process was trying to open it to write out a copy while it was in use. (Interestingly, I couldn't reproduce this running the test by itself in a loop for a couple of hours, but it happens constantly when running all tests.) The problem with using `_tmpbindir` is that it is the randomly generated path for the test run, and instead of Windows Firewall remembering the executable signature or image hash when allowing the process to open a server port, it apparently remembers the image path. That means every run will trigger a popup to allow it, which is bad for firing off a test run and walking away. I tried to symlink to the python executable, but that currently requires admin priviledges[1]. This will prompt the first time if the underlying python binary has never opened a server port, but appears to avoid it on subsequent runs. [1] https://bugs.python.org/issue40687 Differential Revision: https://phab.mercurial-scm.org/D9815
Sun, 17 Jan 2021 22:25:15 -0500 hghave: split apart testing for the curses module and `tic` executable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 17 Jan 2021 22:25:15 -0500] rev 46325
hghave: split apart testing for the curses module and `tic` executable ef771d329961 skipped the check for the `tic` executable, because the curses module alone on Windows is enough to pass the `test-*-curses.t` tests. However, `test-status-color.t` uses this same check and explicitly invoked the executable, which fails on Windows. From the cursory searching I did, curses on unix requires `tic`, which I assume is why they were tied together in the first place. So this continues to require both to get past the curses guards on non Windows platforms. Differential Revision: https://phab.mercurial-scm.org/D9814
(0) -30000 -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 tip