Wed, 18 Sep 2019 13:50:33 -0700 wireprototypes: clarify documentation of getbundle argument types
Martin von Zweigbergk <martinvonz@google.com> [Wed, 18 Sep 2019 13:50:33 -0700] rev 42955
wireprototypes: clarify documentation of getbundle argument types It seems like it was a mix of what the Python code would see and what was sent over the wire. I've tried to clarify both the type seen in Python and how it's transmitted. Differential Revision: https://phab.mercurial-scm.org/D6871
Thu, 19 Sep 2019 07:50:24 +0900 merge with stable
Yuya Nishihara <yuya@tcha.org> [Thu, 19 Sep 2019 07:50:24 +0900] rev 42954
merge with stable
Wed, 18 Sep 2019 17:53:10 +0700 merge: respect parents order when using `graft` on a merge, this time for real stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 18 Sep 2019 17:53:10 +0700] rev 42953
merge: respect parents order when using `graft` on a merge, this time for real See a4ca0610c754. potherp1 is a boolean variable that means "pother is ctx.p1", and parents is naturally [ctx.p1, ctx.p2]. pctx is always removed from parents, so if pctx is parents[0], then we end up using parents[1] as pother. To be true to its name, potherp1 should then be True only when pctx is at parents[1].
Tue, 17 Sep 2019 15:35:16 -0700 py3: don't double-convert "opts" to bytes
Martin von Zweigbergk <martinvonz@google.com> [Tue, 17 Sep 2019 15:35:16 -0700] rev 42952
py3: don't double-convert "opts" to bytes The "opts" are already converted to bytes at the beginning of the function. Doing it twice results in a crash, which makes test-uncommit.t fail. The extra call was added recently, in ff1ff2aae132 (uncommit: add support to modify the commit message and date, 2019-09-07). test-uncommit.t passes again after this patch. Differential Revision: https://phab.mercurial-scm.org/D6864
Tue, 17 Sep 2019 21:06:07 +0100 py3: byte-prefix sanitisation regexes in phabricator.py
Ian Moody <moz-ian@perix.co.uk> [Tue, 17 Sep 2019 21:06:07 +0100] rev 42951
py3: byte-prefix sanitisation regexes in phabricator.py So it doesn't die with "TypeError: cannot use a string pattern on a bytes-like object". Differential Revision: https://phab.mercurial-scm.org/D6863
Wed, 18 Sep 2019 00:20:43 +0100 py3: pass a bytestring into querydrev instead of a string that'll TypeError
Ian Moody <moz-ian@perix.co.uk> [Wed, 18 Sep 2019 00:20:43 +0100] rev 42950
py3: pass a bytestring into querydrev instead of a string that'll TypeError This was a regression I introduced in c19d259fd6ad. When the string gets to the memoryview in _tokenize under py3 it'll die. Differential Revision: https://phab.mercurial-scm.org/D6869
Wed, 18 Sep 2019 00:05:52 +0100 py3: add test demonstrating TypeError when phabsending skips unchanged commits
Ian Moody <moz-ian@perix.co.uk> [Wed, 18 Sep 2019 00:05:52 +0100] rev 42949
py3: add test demonstrating TypeError when phabsending skips unchanged commits Skipping can currently only happen with `--no-amend`, so this isn't a usual configuration. Differential Revision: https://phab.mercurial-scm.org/D6868
Tue, 17 Sep 2019 15:07:08 -0400 tests: clean up built binaries after running test-fuzz-targets.t
Augie Fackler <augie@google.com> [Tue, 17 Sep 2019 15:07:08 -0400] rev 42948
tests: clean up built binaries after running test-fuzz-targets.t Most users won't notice a change here because they won't have the fuzzer infra, but by good fortune my workstation has the required bits and keeps leaving the fuzzer binaries around. Differential Revision: https://phab.mercurial-scm.org/D6862
Tue, 17 Sep 2019 14:22:22 -0400 fastannotate: remove support for flock() locking
Augie Fackler <augie@google.com> [Tue, 17 Sep 2019 14:22:22 -0400] rev 42947
fastannotate: remove support for flock() locking We've seen enough weirdness in CI with flock for remotefilelog that I'm now of the opinion we should just stop using flock() everywhere until someone has a concrete need for the extra performance *and* a way to only use it when safe (even if that's just default-to-off.) Differential Revision: https://phab.mercurial-scm.org/D6861
Tue, 17 Sep 2019 14:20:13 -0400 remotefilelog: remove dead code for using flock() for locking
Augie Fackler <augie@google.com> [Tue, 17 Sep 2019 14:20:13 -0400] rev 42946
remotefilelog: remove dead code for using flock() for locking Differential Revision: https://phab.mercurial-scm.org/D6860
Thu, 12 Sep 2019 21:55:45 -0700 narrow: add option for automatically removing unused includes
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Sep 2019 21:55:45 -0700] rev 42945
narrow: add option for automatically removing unused includes It's been a somewhat common request among our users to have Mercurial automatically pick includes to remove. This patch adds an option for that: `hg tracked --auto-remove-includes`. I'm not sure if this is the right name and semantics for it. Perhaps the feature should also add excludes of large subdirectories even if other files in the include are needed? Narrow clones are experimental, so we can change the name and/or semantics later if necessary. Differential Revision: https://phab.mercurial-scm.org/D6848
Thu, 12 Sep 2019 21:22:59 -0700 narrow: don't hexify paths and double-hexify known nodes on wire (BC)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Sep 2019 21:22:59 -0700] rev 42944
narrow: don't hexify paths and double-hexify known nodes on wire (BC) It isn't obvious, but wireprototypes.encodelist() is meant only for binary nodeids. So when we used it for encoding hex nodeids and paths, the encoded result was surprising and hard to read. This patch changes the encoding to make the list of paths a comma-separated list and the list of common nodes to be a encodelist()-encoded list of binary nodeids (so the result is just singly-hexified nodeids). This is clearly a breaking change, but the feature is experimental and we're not aware of anyone running a server using this command yet. Differential Revision: https://phab.mercurial-scm.org/D6851
Wed, 11 Sep 2019 17:41:13 +0200 remotefilelog: replace repack lock to solve race condition
Boris Feld <boris.feld@octobus.net> [Wed, 11 Sep 2019 17:41:13 +0200] rev 42943
remotefilelog: replace repack lock to solve race condition 2c74337e6483 reduced the probability of race-conditions when starting background repack and prefetch and we saw the difference in our CI instance with all failures disappearing except one where one call to waitonrepack seems to returns too early. I'm not sure what exactly goes wrong but I realized that while the prefetch operation uses a standard Mercurial lock, the repack operation is using a custom lock based on `fcntl.flock` on available platforms. As `extutil.flock` fallback on traditional Mercurial locks on other platforms and the tests are stable on my laptop, our CI environment and GCC112, I'm sending this patch to standardize the behavior across environments. Differential Revision: https://phab.mercurial-scm.org/D6844
Tue, 17 Sep 2019 18:36:30 +0200 perf: add a --stats argument to perfhelper-pathcopies
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Sep 2019 18:36:30 +0200] rev 42942
perf: add a --stats argument to perfhelper-pathcopies The arguments will display some statisting about the distribution of the value we measure.
Tue, 17 Sep 2019 09:49:30 +0200 perf: add a --stats argument to perfhelper-mergecopies
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 17 Sep 2019 09:49:30 +0200] rev 42941
perf: add a --stats argument to perfhelper-mergecopies The arguments will display some statistics about the distribution of the value we measure.
Tue, 17 Sep 2019 10:47:31 +0000 archive: add XZ support if built with Python 3
David Demelier <markand@malikania.fr> [Tue, 17 Sep 2019 10:47:31 +0000] rev 42940
archive: add XZ support if built with Python 3
Sun, 15 Sep 2019 22:43:32 +0900 rust-cpython: add sanity check to PySharedState::decrease_leak_count()
Yuya Nishihara <yuya@tcha.org> [Sun, 15 Sep 2019 22:43:32 +0900] rev 42939
rust-cpython: add sanity check to PySharedState::decrease_leak_count() If decrease_leak_count() were called unnecessarily, there must be a serious bug. It's better to not silently ignore such cases.
Sat, 14 Sep 2019 12:11:03 -0400 tests: stabilize test-fix.t on Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Sep 2019 12:11:03 -0400] rev 42938
tests: stabilize test-fix.t on Windows `pwd` prints /tmp/... style paths, not C:\... needed for $TESTTMP to be substituted. In the final test, for whatever reason, Windows was missing EOL in the files and printing: [wdir] changedlines: printf: warning: ignoring excess arguments, starting with 'printf' even though it was trying to run: printf "Line ranges:\n"; printf "2 through 2\n"; I tried wrapping both :command and :linerange in `sh -c "..."`, and while that fixed the missing EOL, it missed the "2 through 2" output. Differential Revision: https://phab.mercurial-scm.org/D6852
Sun, 15 Sep 2019 20:04:00 -0700 zstandard: vendor python-zstandard 0.12
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 15 Sep 2019 20:04:00 -0700] rev 42937
zstandard: vendor python-zstandard 0.12 The upstream source distribution from PyPI was extracted. Unwanted files were removed. The clang-format ignore list was updated to reflect the new source of files. test-repo-compengines.t was updated to reflect a change in behavior of the zstd library. The project contains a vendored copy of zstandard 1.4.3. The old version was 1.3.8. This should result in some minor performance wins. # no-check-commit because 3rd party code has different style guidelines Differential Revision: https://phab.mercurial-scm.org/D6858
Sun, 15 Sep 2019 00:07:30 -0400 uncommit: enable support for adding a note
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Sep 2019 00:07:30 -0400] rev 42936
uncommit: enable support for adding a note This comes from the evolve extension's version of uncommit. The logic was already in place, and appears to be the last of the trivial things that can be enabled. Should these note options (including on amend) be marked advanced to keep the help text clutter level down? Differential Revision: https://phab.mercurial-scm.org/D6857
Sat, 14 Sep 2019 23:41:31 -0400 amend: enable support for using the secret phase
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Sep 2019 23:41:31 -0400] rev 42935
amend: enable support for using the secret phase This comes from the evolve extension's version of amend. The logic was already in place, and appears to be the last of the trivial things that can be enabled. Differential Revision: https://phab.mercurial-scm.org/D6856
Sat, 14 Sep 2019 23:40:12 -0400 amend: enable support for closing the branch
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Sep 2019 23:40:12 -0400] rev 42934
amend: enable support for closing the branch This comes from the evolve extension's version of amend. The logic was already in place. Differential Revision: https://phab.mercurial-scm.org/D6855
Sat, 14 Sep 2019 18:44:18 -0400 amend: prevent '\n' in the note string
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Sep 2019 18:44:18 -0400] rev 42933
amend: prevent '\n' in the note string This comes from the evolve function. I'm not sure why this check was missing in core, since it was present when the length check was added to evolve. I didn't flag this as BC because 530b7361e3a9 mentioned this argument wasn't added to the release notes due to no display capability, and that hasn't changed AFAIK. Differential Revision: https://phab.mercurial-scm.org/D6854
Sat, 14 Sep 2019 15:13:16 -0400 amend: add option to update to the current user
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Sep 2019 15:13:16 -0400] rev 42932
amend: add option to update to the current user This is also from the evolve extension's version of amend. A side effect of this refactoring is for uncommit to support `rewrite.update-timestamp`. Differential Revision: https://phab.mercurial-scm.org/D6853
Wed, 11 Sep 2019 15:03:08 -0700 bundle2: fix an off-by-one in debug message of number of parts
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Sep 2019 15:03:08 -0700] rev 42931
bundle2: fix an off-by-one in debug message of number of parts Differential Revision: https://phab.mercurial-scm.org/D6850
Thu, 12 Sep 2019 22:31:45 -0700 tests: move a config write to top of file since it applies to all tests
Martin von Zweigbergk <martinvonz@google.com> [Thu, 12 Sep 2019 22:31:45 -0700] rev 42930
tests: move a config write to top of file since it applies to all tests I'm about to add another test that depends on this config. Differential Revision: https://phab.mercurial-scm.org/D6849
Tue, 10 Sep 2019 09:57:33 -0400 idirstate: group private methods and attrs that are in the interface
Augie Fackler <augie@google.com> [Tue, 10 Sep 2019 09:57:33 -0400] rev 42929
idirstate: group private methods and attrs that are in the interface This makes it a little more obvious at a glance what work is left. Fortunately there's not a whole lot left. I suspect the ignore logic is going to be the tricky bit. Differential Revision: https://phab.mercurial-scm.org/D6839
Tue, 10 Sep 2019 09:42:56 -0400 idirstate: remove now non-public _map attribute
Augie Fackler <augie@google.com> [Tue, 10 Sep 2019 09:42:56 -0400] rev 42928
idirstate: remove now non-public _map attribute Differential Revision: https://phab.mercurial-scm.org/D6838
Tue, 10 Sep 2019 09:21:38 -0400 interfaces: introduce an interface for dirstate implementations
Augie Fackler <augie@google.com> [Tue, 10 Sep 2019 09:21:38 -0400] rev 42927
interfaces: introduce an interface for dirstate implementations As usual with adding interface definitions, this describes the way things are, not the way we'd like things to be. There are some clear problems in the interface right now (eg ._map leaks in a few places), but I have plans to clean those up. There are also many missing docstrings, but again, we'll make a second pass to clean that up. Differential Revision: https://phab.mercurial-scm.org/D6836
Tue, 10 Sep 2019 09:41:58 -0400 cleanup: fix leakage of dirstate._map to client code
Augie Fackler <augie@google.com> [Tue, 10 Sep 2019 09:41:58 -0400] rev 42926
cleanup: fix leakage of dirstate._map to client code We already had proper accessors for most of the behavior of dirstate._map that callers cared about exposed in the actual dirstate class as public methods. Sigh. There are two remaining privacy violations in the codebase after this change: 1) In the perf extension, which I suspect has to stick around because it's really testing the dirstate implementation directly 2) In largefiles, where we deal with standins and mutating status. Looking at this, I _strongly_ suspect a formal dirstate interface would allow this to work via composition instead of inheritance and monkeypatching. Fortunately, such wins are a part of my motivation for this work. I anticipate we'll come back to this in due time. Differential Revision: https://phab.mercurial-scm.org/D6837
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip