Fri, 23 Oct 2020 15:59:32 -0700 config: rename ui.mergemarkertemplate to command-templates.mergemarker
Martin von Zweigbergk <martinvonz@google.com> [Fri, 23 Oct 2020 15:59:32 -0700] rev 45790
config: rename ui.mergemarkertemplate to command-templates.mergemarker Differential Revision: https://phab.mercurial-scm.org/D9247
Fri, 23 Oct 2020 15:27:33 -0700 config: rename ui.graphnodetemplate to command-templates.graphnode
Martin von Zweigbergk <martinvonz@google.com> [Fri, 23 Oct 2020 15:27:33 -0700] rev 45789
config: rename ui.graphnodetemplate to command-templates.graphnode Differential Revision: https://phab.mercurial-scm.org/D9246
Fri, 23 Oct 2020 10:56:18 -0700 config: add a new [command-templates] section for templates defined by hg
Martin von Zweigbergk <martinvonz@google.com> [Fri, 23 Oct 2020 10:56:18 -0700] rev 45788
config: add a new [command-templates] section for templates defined by hg The existing `[templates]` section lets the user define their own keys and then refer to them on the command line with `-T`. There are many cases where hg wants to use a user-defined template with a given name, such as `ui.logtemplate` and `ui.mergemarkertemplate`. This patch starts moving such configs in a common section by moving `ui.logtemplate` to `command-templates.log` (with an alias from the old name, of course). Differential Revision: https://phab.mercurial-scm.org/D9245
Mon, 26 Oct 2020 10:08:22 -0700 branching: merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Mon, 26 Oct 2020 10:08:22 -0700] rev 45787
branching: merge with stable
Thu, 24 Dec 2020 15:58:08 +0900 log: update documentation about --follow with/without --rev (issue6459) stable
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Dec 2020 15:58:08 +0900] rev 45786
log: update documentation about --follow with/without --rev (issue6459)
Thu, 03 Dec 2020 22:49:01 +0100 bugzilla: pass the url to xmlrpclib.ServerProxy as str stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 03 Dec 2020 22:49:01 +0100] rev 45785
bugzilla: pass the url to xmlrpclib.ServerProxy as str
Thu, 03 Dec 2020 22:49:01 +0100 bugzilla: fix reporting of exceptions with py3 stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 03 Dec 2020 22:49:01 +0100] rev 45784
bugzilla: fix reporting of exceptions with py3
Thu, 03 Dec 2020 18:42:23 +0900 ui: remove excessive strtolocal() from debuguigetpass stable
Yuya Nishihara <yuya@tcha.org> [Thu, 03 Dec 2020 18:42:23 +0900] rev 45783
ui: remove excessive strtolocal() from debuguigetpass ui.getpass() returns Optional[bytes], and strtolocal(bytes) would crash. Follows up 07b0a687c01a "ui: ensure `getpass()` returns bytes."
Thu, 03 Dec 2020 13:36:24 -0500 Added signature for changeset 1d5189a57405 stable
Augie Fackler <raf@durin42.com> [Thu, 03 Dec 2020 13:36:24 -0500] rev 45782
Added signature for changeset 1d5189a57405
Thu, 03 Dec 2020 13:36:23 -0500 Added tag 5.6.1 for changeset 1d5189a57405 stable
Augie Fackler <raf@durin42.com> [Thu, 03 Dec 2020 13:36:23 -0500] rev 45781
Added tag 5.6.1 for changeset 1d5189a57405
Wed, 02 Dec 2020 15:39:01 -0800 rebase: clear merge state when aborting in-memory merge on dirty working copy stable 5.6.1
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:39:01 -0800] rev 45780
rebase: clear merge state when aborting in-memory merge on dirty working copy Differential Revision: https://phab.mercurial-scm.org/D9509
Wed, 02 Dec 2020 15:15:16 -0800 tests: show that in-memory rebase leaves state when working copy is dirty stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 02 Dec 2020 15:15:16 -0800] rev 45779
tests: show that in-memory rebase leaves state when working copy is dirty When in-memory rebase falls back to on-disk rebase, it checks if the working copy is dirty. If it is, it aborts the rebase. However, it leaves the rebase state on disk. I broke it in feffeb18d412 (rebase: teach in-memory rebase to not restart with on-disk rebase on conflict, 2020-09-18). Differential Revision: https://phab.mercurial-scm.org/D9508
Fri, 27 Nov 2020 14:54:37 -0500 extensions: avoid a crash when the version isn't properly byteified on py3 stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Nov 2020 14:54:37 -0500] rev 45778
extensions: avoid a crash when the version isn't properly byteified on py3 We already force bytestr on the `testedwith` and `buglink` attributes in dispatch.py when generating a bug report with a similar comment about not every extension being ported to py3. We should do the same here, so the function can be properly typed. Differential Revision: https://phab.mercurial-scm.org/D9433
Mon, 23 Nov 2020 11:47:06 -0500 ui: ensure `getpass()` returns bytes stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 23 Nov 2020 11:47:06 -0500] rev 45777
ui: ensure `getpass()` returns bytes Previously, this could return either bytes or str. I'm not sure which direction we should go in, but since the input is bytes, I guess bytes makes sense as output. `debuguigetpass` crashed because it assumed bytes would be returned, `sslcontext.load_cert_chain()` is happy with bytes or str if the type info in PyCharm is correct, and `smtplib.SMTP.login()` wants str. I couldn't figure out how to test this, because the test stalls for input with `echo test | hg debuguigetpass --config ui.interactive=1`, likely because it drains stdin before prompting. The custom input reading with `ui.nontty=1` does not. I'm also a bit concerned with all of this encoding/decoding. The existing code in the mail module uses `encoding.strfromlocal()`, but the username and password are ascii encoded/decoded in `mercurial.url.passwordmgr.find_user_password()` with `pycompat.{str,bytes}url()`. I'm not sure if this inconsistency could cause subtle compatability issues. Differential Revision: https://phab.mercurial-scm.org/D9375
Thu, 26 Nov 2020 02:28:42 -0500 packaging: regenerate the Windows requirements manifest on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Nov 2020 02:28:42 -0500] rev 45776
packaging: regenerate the Windows requirements manifest on Windows SecretStorage is a Linux package, and the other stuff removed is a dependency of it. I assume this was last generated on Linux, and noticed this trying to add another package and regenerating on Windows. Differential Revision: https://phab.mercurial-scm.org/D9404
Thu, 26 Nov 2020 03:09:56 -0500 pyoxidizer: point to the py3 requirements instead of py2 on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Nov 2020 03:09:56 -0500] rev 45775
pyoxidizer: point to the py3 requirements instead of py2 on Windows Differential Revision: https://phab.mercurial-scm.org/D9406
Sat, 21 Nov 2020 16:55:07 -0500 extensions: gracefully warn when doing min version check with no local version stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 21 Nov 2020 16:55:07 -0500] rev 45774
extensions: gracefully warn when doing min version check with no local version After doing a `make clean`, I started getting cryptic failures to import extensions with the `minimumhgversion` attribute on py3: *** failed to import extension evolve: '>' not supported between instances of 'int' and 'NoneType' *** failed to import extension topic: '>' not supported between instances of 'int' and 'NoneType' This now handles the `(None, None)` tuple before comparing, and disables the extension with the same friendly message as in py2. Differential Revision: https://phab.mercurial-scm.org/D9363
Sat, 28 Nov 2020 11:15:54 +0900 diff: do not concatenate immutable bytes while building a/b bodies (issue6445) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 28 Nov 2020 11:15:54 +0900] rev 45773
diff: do not concatenate immutable bytes while building a/b bodies (issue6445) Use bytearray instead. I don't know what's changed since Python 2, but bytes concatenation is 100x slow on Python 3. % python2.7 -m timeit -s "s = b''" "for i in range(10000): s += b'line'" 1000 loops, best of 3: 321 usec per loop % python3.9 -m timeit -s "s = b''" "for i in range(10000): s += b'line'" 5 loops, best of 5: 39.2 msec per loop Benchmark using tailwind.css (measuring the fast path, a is empty): % HGRCPATH=/dev/null python2.7 ./hg log -R /tmp/issue6445 -p --time \ --color=always --config diff.word-diff=true >/dev/null (prev) time: real 1.580 secs (user 1.560+0.000 sys 0.020+0.000) (this) time: real 1.610 secs (user 1.570+0.000 sys 0.030+0.000) % HGRCPATH=/dev/null python3.9 ./hg log -R /tmp/issue6445 -p --time \ --color=always --config diff.word-diff=true >/dev/null (prev) time: real 114.500 secs (user 114.460+0.000 sys 0.030+0.000) (this) time: real 2.180 secs (user 2.140+0.000 sys 0.040+0.000) Benchmark using random tabular text data (not the fast path): % dd if=/dev/urandom bs=1k count=1000 | hexdump -v -e '16/1 "%3u," "\n"' > ttf % hg ci -ma % dd if=/dev/urandom bs=1k count=1000 | hexdump -v -e '16/1 "%3u," "\n"' > ttf % hg ci -mb % HGRCPATH=/dev/null python2.7 ./hg log -R /tmp/issue6445 -p --time \ --color=always --config diff.word-diff=true >/dev/null (prev) time: real 3.240 secs (user 3.040+0.000 sys 0.200+0.000 (this) time: real 3.230 secs (user 3.070+0.000 sys 0.160+0.000) % HGRCPATH=/dev/null python3.9 ./hg log -R /tmp/issue6445 -p --time \ --color=always --config diff.word-diff=true >/dev/null (prev) time: real 44.130 secs (user 43.850+0.000 sys 0.270+0.000) (this) time: real 4.170 secs (user 3.850+0.000 sys 0.310+0.000)
Tue, 01 Dec 2020 01:18:21 -0500 procutil: use rapply(tonativestr, ...) to preserve lists when they come in stable
Augie Fackler <augie@google.com> [Tue, 01 Dec 2020 01:18:21 -0500] rev 45772
procutil: use rapply(tonativestr, ...) to preserve lists when they come in This was broken when script was a list instead of a string. I caught this with an internal extension at Google, and I'm not really sure why it wasn't caught in any kind of CI. Differential Revision: https://phab.mercurial-scm.org/D9471
Tue, 03 Nov 2020 11:24:21 +0900 chg: reset errno prior to calling strtol() stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2020 11:24:21 +0900] rev 45771
chg: reset errno prior to calling strtol() Otherwise we can't figure out if the last strtol() invocation failed or not.
Tue, 03 Nov 2020 11:15:50 +0900 chg: do not close dir fd while iterating stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2020 11:15:50 +0900] rev 45770
chg: do not close dir fd while iterating It works so long as the dp is the last entry, but readdir(dp) would fail with EBADF. Let's not do that and close the dir fd explicitly.
Tue, 03 Nov 2020 11:12:25 +0900 chg: show debug message for each fd to be closed stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2020 11:12:25 +0900] rev 45769
chg: show debug message for each fd to be closed It helps debugging. The number of file descriptors should be small in most cases, so the console output wouldn't get bloated even with CHG_DEBUG=1.
Tue, 03 Nov 2020 11:06:15 +0900 chg: apply clang-format stable
Yuya Nishihara <yuya@tcha.org> [Tue, 03 Nov 2020 11:06:15 +0900] rev 45768
chg: apply clang-format
Mon, 02 Nov 2020 11:58:34 +0100 chg: close file descriptors when starting the daemon stable
Mathias De Mare <mathias.de_mare@nokia.com> [Mon, 02 Nov 2020 11:58:34 +0100] rev 45767
chg: close file descriptors when starting the daemon It's good practice to close file descriptors when forking to start a daemon. This did not appear to happen yet, which results in flock hanging in one location in our system (because the chg daemon keeps the locked file open). Differential Revision: https://phab.mercurial-scm.org/D9268
Sat, 31 Oct 2020 17:42:31 -0400 crecord: render chunkpad on Windows (issue6427) stable
Barret Rennie <barret@brennie.ca> [Sat, 31 Oct 2020 17:42:31 -0400] rev 45766
crecord: render chunkpad on Windows (issue6427) When using Windows wrappers of PDCurses (e.g., windows-curses), the chunkpad does not render when executing `hg commit -i`. This is due to attempting to refresh one too many columns of the pad. Differential Revision: https://phab.mercurial-scm.org/D9267
Mon, 02 Nov 2020 14:26:19 -0500 Added signature for changeset 18c17d63fdab stable
Augie Fackler <raf@durin42.com> [Mon, 02 Nov 2020 14:26:19 -0500] rev 45765
Added signature for changeset 18c17d63fdab
Mon, 02 Nov 2020 14:26:18 -0500 Added tag 5.6 for changeset 18c17d63fdab stable
Augie Fackler <raf@durin42.com> [Mon, 02 Nov 2020 14:26:18 -0500] rev 45764
Added tag 5.6 for changeset 18c17d63fdab
Thu, 29 Oct 2020 11:12:25 +0100 i18n: fix coding tag unsupported by xgettext stable 5.6
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 29 Oct 2020 11:12:25 +0100] rev 45763
i18n: fix coding tag unsupported by xgettext Running `make update-pot` currently fails with the following error: xgettext: mercurial/metadata.py:1: Unknown encoding "utf8". Proceeding with ASCII instead. xgettext: Non-ASCII string at mercurial/metadata.py:311. Please specify the source encoding through --from-code or through a comment as specified in http://www.python.org/peps/pep-0263.html. Differential Revision: https://phab.mercurial-scm.org/D9260
Thu, 29 Oct 2020 11:11:54 +0100 py3: hggettext stable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 29 Oct 2020 11:11:54 +0100] rev 45762
py3: hggettext `itervalues()` is only available on Python 2. Since this script doesn't currently refer to the main Mercurial modules, and as a result doesn't have easy access to the `pycompat` module, I simply changed it to use `value()` instead. Although this allocates a list on Python 2, I'd consider that acceptable for a utility script; Mercurial doesn't have all _that_ many commands anyway. Differential Revision: https://phab.mercurial-scm.org/D9259
Thu, 29 Oct 2020 11:37:22 -0700 relnotes: copy "next" to "5.6" and clear "next" stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 29 Oct 2020 11:37:22 -0700] rev 45761
relnotes: copy "next" to "5.6" and clear "next" The same procedure as every year^Wcycle. Differential Revision: https://phab.mercurial-scm.org/D9263
Fri, 23 Oct 2020 22:20:08 -0400 repoview: only pin obsolete wdir parents while there are unresolved conflicts stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 23 Oct 2020 22:20:08 -0400] rev 45760
repoview: only pin obsolete wdir parents while there are unresolved conflicts I noticed after doing an update from an obsolete revision with a dirty wdir that the obsolete commit stayed visible for no obvious reason. It was decided in 85b03b1e4715 not to clear mergestate once all of the conflicts were resolved, in order to allow re-resolving. Since the point of pinning the obsolete parents was to allow resolving in the first place (aaeccdb6e654), it makes sense to also gate it on whether or not there are any remaining files to resolve. This might result in pinning again if files are marked unresolved again, but that seems reasonable, given that it still solves the original issue. Note that this isn't purely cosmetic- pushing with a pinned obsolete revision is likely to cause complaints about pushing multiple heads or other unexpected errors. So the faster it comes out of that state, the better. Differential Revision: https://phab.mercurial-scm.org/D9248
Wed, 28 Oct 2020 17:41:25 +0100 backout: don't assume that tip as what we just committed stable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 28 Oct 2020 17:41:25 +0100] rev 45759
backout: don't assume that tip as what we just committed Differential Revision: https://phab.mercurial-scm.org/D9256
Fri, 23 Oct 2020 20:33:36 +0900 url: do not continue HTTP authentication with user=None (issue6425) stable
Yuya Nishihara <yuya@tcha.org> [Fri, 23 Oct 2020 20:33:36 +0900] rev 45758
url: do not continue HTTP authentication with user=None (issue6425) I initially thought this is a py3-compat bug of passwordmgr._writedebug(), but actually returning (None, str) pair is wrong at all. HTTP authentication would continue with user="None" in that case. Since registering a password of user=None should also be wrong, this patch simply adds early return.
Fri, 23 Oct 2020 20:10:17 +0900 ui: fix echo back of ui.prompt() to not concatenate None as bytes stable
Yuya Nishihara <yuya@tcha.org> [Fri, 23 Oct 2020 20:10:17 +0900] rev 45757
ui: fix echo back of ui.prompt() to not concatenate None as bytes Spotted while writing tests for the issue6425. The default value may be None.
Thu, 29 Oct 2020 07:51:13 +0100 commit: don't change phases for preexisting commits stable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 29 Oct 2020 07:51:13 +0100] rev 45756
commit: don't change phases for preexisting commits I noticed when pulling with hg-git in a repository that already had the changes, but pulled from another Mercurial repository. This meant that hg-git would re-create exact matches of the changesets, and if they were public, they'd get reverted to drafts. Differential Revision: https://phab.mercurial-scm.org/D9253
Thu, 22 Oct 2020 18:38:41 -0400 demandimport: don't raise AttributeError if `exec_module` is missing stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 22 Oct 2020 18:38:41 -0400] rev 45755
demandimport: don't raise AttributeError if `exec_module` is missing I assume this was meant to do the check gracefully. After shoveling a bunch of modules into the ignore list in order to get keyring to work out of the box on CentOS 8, I hit the following error accessing the password, which the change fixes. Now the SecretStorage backend works out of the box, without any edits to the ignore list. ** Unknown exception encountered with possibly-broken third-party extension mercurial_keyring ** which supports versions unknown of Mercurial. ** Please disable mercurial_keyring and try your action again. ** If that fixes the bug please report it to https://foss.heptapod.net/mercurial/mercurial_keyring/issues ** Python 3.6.8 (default, Apr 16 2020, 01:36:27) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] ** Mercurial Distributed SCM (version 5.5.2) ** Extensions loaded: evolve, topic, rebase, absorb, mercurial_keyring Traceback (most recent call last): File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/mercurial_keyring.py", line 230, in _read_password_from_keyring password = keyring.get_password(KEYRING_SERVICE, pwdkey) File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/keyring/core.py", line 53, in get_password return _keyring_backend.get_password(service_name, username) File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/keyring/backends/chainer.py", line 51, in get_password password = keyring.get_password(service, username) File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/keyring/backends/SecretService.py", line 79, in get_password return item.get_secret().decode('utf-8') File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/secretstorage/item.py", line 105, in get_secret decryptor = Cipher(aes, modes.CBC(aes_iv), default_backend()).decryptor() File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/cryptography/hazmat/backends/__init__.py", line 15, in default_backend from cryptography.hazmat.backends.openssl.backend import backend File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/hgdemandimport/demandimportpy3.py", line 53, in exec_module self.loader.exec_module(module) File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 7, in <module> from cryptography.hazmat.backends.openssl.backend import backend File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/hgdemandimport/demandimportpy3.py", line 53, in exec_module self.loader.exec_module(module) File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 14, in <module> from six.moves import range File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 951, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 894, in _find_spec File "/home/mharbison/hg_py3.6.8_venv/lib64/python3.6/site-packages/hgdemandimport/demandimportpy3.py", line 117, in find_spec and getattr(spec.loader, "exec_module") AttributeError: '_SixMetaPathImporter' object has no attribute 'exec_module' Differential Revision: https://phab.mercurial-scm.org/D9243
Thu, 22 Oct 2020 12:31:26 -0400 test: avoid bashisms in test-transaction-rollback-on-sigpipe.t stable
Mitchell Plamann <mplamann@janestreet.com> [Thu, 22 Oct 2020 12:31:26 -0400] rev 45754
test: avoid bashisms in test-transaction-rollback-on-sigpipe.t Differential Revision: https://phab.mercurial-scm.org/D9239
Wed, 21 Oct 2020 22:53:15 -0700 automation: upload Python 3.9 Windows wheels stable
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Oct 2020 22:53:15 -0700] rev 45753
automation: upload Python 3.9 Windows wheels We are producing these. We should be publishing them.
Wed, 21 Oct 2020 21:53:19 -0700 contrib: split Windows requirements into multiple files stable
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 21 Oct 2020 21:53:19 -0700] rev 45752
contrib: split Windows requirements into multiple files Package support for Python 2 has diverged significantly. It is no longer trivial to maintain a single requirements file that supports both Python 2 and 3 because the set of packages and versions varies wildly. This commit split up the Windows requirements files so we have variants for Python 2 and 3. As part of this, I also renamed the files to have what I believe to be more reasonable naming ("win32" felt like a weird identifier to me). We can see that some package versions decreated on 2.7. This is because the old pinned versions weren't compatible with Python 2.
Sat, 17 Oct 2020 13:06:18 +0900 relnotes: add diffcontains() to new features list stable
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Oct 2020 13:06:18 +0900] rev 45751
relnotes: add diffcontains() to new features list
Sat, 17 Oct 2020 13:00:04 +0900 revset: rename diff(pattern) to diffcontains(pattern) stable
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Oct 2020 13:00:04 +0900] rev 45750
revset: rename diff(pattern) to diffcontains(pattern) Suggested by Augie, and I think it's better name.
Sun, 18 Oct 2020 22:48:00 -0700 pyoxidizer: update to PyOxidizer 0.9 stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 18 Oct 2020 22:48:00 -0700] rev 45749
pyoxidizer: update to PyOxidizer 0.9 We were previously using a Git commit from a few days before the 0.8 release. This commit upgrades us to the just-released 0.9 release. This required some Starlark changes due to backwards incompatible changes. Differential Revision: https://phab.mercurial-scm.org/D9228
Tue, 20 Oct 2020 22:06:30 +0530 Added signature for changeset 0e06a7ab9e0d stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:06:30 +0530] rev 45748
Added signature for changeset 0e06a7ab9e0d
Tue, 20 Oct 2020 22:06:23 +0530 Added tag 5.6rc0 for changeset 0e06a7ab9e0d stable
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:06:23 +0530] rev 45747
Added tag 5.6rc0 for changeset 0e06a7ab9e0d
Tue, 20 Oct 2020 22:04:04 +0530 merge with default for 5.6rc0 stable 5.6rc0
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 20 Oct 2020 22:04:04 +0530] rev 45746
merge with default for 5.6rc0
Thu, 15 Oct 2020 22:57:30 -0700 tag: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:57:30 -0700] rev 45745
tag: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9223
Thu, 15 Oct 2020 22:36:17 -0700 serve: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:36:17 -0700] rev 45744
serve: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9222
Thu, 15 Oct 2020 22:36:08 -0700 revert: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:36:08 -0700] rev 45743
revert: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9221
Thu, 15 Oct 2020 22:23:45 -0700 incoming: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:23:45 -0700] rev 45742
incoming: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9220
Thu, 15 Oct 2020 22:23:35 -0700 grep: levarage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 22:23:35 -0700] rev 45741
grep: levarage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9219
Thu, 15 Oct 2020 21:48:43 -0700 import: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 21:48:43 -0700] rev 45740
import: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9217
Thu, 15 Oct 2020 21:44:03 -0700 backout: leverage cmdutil.check_incompatible_arguments()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 21:44:03 -0700] rev 45739
backout: leverage cmdutil.check_incompatible_arguments() Differential Revision: https://phab.mercurial-scm.org/D9216
Mon, 12 Oct 2020 12:52:45 -0700 transaction: use ProgrammingError for when an committed transaction is used
Martin von Zweigbergk <martinvonz@google.com> [Mon, 12 Oct 2020 12:52:45 -0700] rev 45738
transaction: use ProgrammingError for when an committed transaction is used It seems to me that ProgrammingError is the right type of error here. Differential Revision: https://phab.mercurial-scm.org/D9215
Mon, 05 Oct 2020 17:18:39 -0400 hook: ignore EPIPE when flushing stdout/stderr
Mitchell Plamann <mplamann@janestreet.com> [Mon, 05 Oct 2020 17:18:39 -0400] rev 45737
hook: ignore EPIPE when flushing stdout/stderr This fixes the bug described in the parent commit. test-transaction-rollback-on-sigpipe.t is updated to show the new behavior. Differential Revision: https://phab.mercurial-scm.org/D9152
Mon, 05 Oct 2020 13:23:16 -0400 test: add test-transaction-rollback-on-sigpipe.t demonstrating py3 regression
Mitchell Plamann <mplamann@janestreet.com> [Mon, 05 Oct 2020 13:23:16 -0400] rev 45736
test: add test-transaction-rollback-on-sigpipe.t demonstrating py3 regression When an hg push is interrupted with C-c, the remote [hg serve] command receives SIGPIPE. If a pretxnchangegroup hook fails, the remote hg then tries to rollback the transaction. It begins by printing "transaction abort!\n". This returns EPIPE, but ui.py ignores that error. In python3 (but not python2), this "transaction abort!\n" message stays in a buffer, so future flushes of stderr will try to print the message again, and so those flushes will also hit EPIPE. This test demonstrates such a case where this EPIPE causes the transaction rollback to fail, leaving behind an abandoned transaction. Differential Revision: https://phab.mercurial-scm.org/D9151
Tue, 13 Oct 2020 05:14:37 +0200 upgrade: allow sidedata upgrade to modify revision flag
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 05:14:37 +0200] rev 45735
upgrade: allow sidedata upgrade to modify revision flag In the process, we fix the lack of HAS_COPIES_INFO flag on upgrade, and test the results. Differential Revision: https://phab.mercurial-scm.org/D9199
Tue, 13 Oct 2020 03:30:49 +0200 sidedata: return enough data to set the proper flag in the future
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 03:30:49 +0200] rev 45734
sidedata: return enough data to set the proper flag in the future If the revision has information relevant to copy tracing, we need to set a dedicated flag in revlog. Currently the upgrade process is failing to do so. Before we teach the upgrade process about flags, we make the information available where we will needs it. Differential Revision: https://phab.mercurial-scm.org/D9198
Tue, 13 Oct 2020 02:49:03 +0200 test: move upgrade run and check earlier in test-copies-chain-merge
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 02:49:03 +0200] rev 45733
test: move upgrade run and check earlier in test-copies-chain-merge We are about to introduce an explicit case for copy tracing after a upgrade. So I am moving the code around beforehand for clarity. Differential Revision: https://phab.mercurial-scm.org/D9196
Tue, 13 Oct 2020 02:45:24 +0200 copies: split creation of the graph and actual checking again
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 02:45:24 +0200] rev 45732
copies: split creation of the graph and actual checking again The re-install the old split. It will be necessary to test that the upgrade process produced a functionally identical result. It will be useful to detect case where the metadata we look at identical, but some other items we did not checked are missing. (spoiler: we will find some bug) Differential Revision: https://phab.mercurial-scm.org/D9195
Thu, 15 Oct 2020 10:28:27 -0700 copy: clarify in help text that `hg co --forget` takes a *destination* file
Martin von Zweigbergk <martinvonz@google.com> [Thu, 15 Oct 2020 10:28:27 -0700] rev 45731
copy: clarify in help text that `hg co --forget` takes a *destination* file We had a user who tried to pass a source file. The command then fails with `<file>: not unmarking as copy - file is not marked as copied`, so at least it's not just silent, but let's be a little clearer in the documentation. Differential Revision: https://phab.mercurial-scm.org/D9214
Thu, 15 Oct 2020 15:57:31 +0200 test: check server error output in `test-pull-bundle.t`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Oct 2020 15:57:31 +0200] rev 45730
test: check server error output in `test-pull-bundle.t` This is useful to debug test failure when they happens. Differential Revision: https://phab.mercurial-scm.org/D9213
Tue, 06 Oct 2020 01:51:56 +0200 unbundle: free temporary objects after use
Joerg Sonnenberger <joerg@bec.de> [Tue, 06 Oct 2020 01:51:56 +0200] rev 45729
unbundle: free temporary objects after use This reduces peak RSS for larger unbundle operations by ~30 Bytes per changeset on AMD64. This can't be a direct delete for Python 2.7, so reset the object instead and leave a comment. The efilesset object can't be deleted as it is referenced by the local onchangelog function and Python 2.7 rejects a delete on the existance of a nested scope. Differential Revision: https://phab.mercurial-scm.org/D9153
Tue, 13 Oct 2020 03:23:17 +0200 changing-files: add a shorthand property to check for copy relevant info
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Oct 2020 03:23:17 +0200] rev 45728
changing-files: add a shorthand property to check for copy relevant info We are going to reuse this change in more place, so we factor it out first. Differential Revision: https://phab.mercurial-scm.org/D9197
Wed, 14 Oct 2020 17:51:56 +0200 pycompat: add an entry for unnamedtmpfile
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 14 Oct 2020 17:51:56 +0200] rev 45727
pycompat: add an entry for unnamedtmpfile I am going to use unnamed temporary files to pass arbitrarily large input data to worker creating bundles. To do so, I need a unified API that work on py2 and py3. Differential Revision: https://phab.mercurial-scm.org/D9211
(0) -30000 -10000 -3000 -1000 -300 -100 -64 +64 +100 +300 +1000 +3000 tip