Fri, 27 Dec 2019 14:08:02 -0800 overlwayworkingctx: remove doubly bad reference to wrapped ctx for copies
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Dec 2019 14:08:02 -0800] rev 44039
overlwayworkingctx: remove doubly bad reference to wrapped ctx for copies `_wrappedctx` lives on overlwayworkingctx, not on the repo object, so we should access it as `._wrappedctx`, not `._repo._wrappedctx`. More importantly, the overlayworkingctx is relative to its base, not including it, so the copies returned should not include copies made in the base. Differential Revision: https://phab.mercurial-scm.org/D7801
Fri, 27 Dec 2019 12:41:56 -0800 movedirstate: get copies from dirstate before setting parents
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Dec 2019 12:41:56 -0800] rev 44038
movedirstate: get copies from dirstate before setting parents Setting dirstate parents can modify the copies recorded in the dirstate when there are two dirstate parents. I don't think we ever call movedirstate() when there is more than one parent, but it seems clearer to get the copies from the dirstate first anyway. Differential Revision: https://phab.mercurial-scm.org/D7800
Thu, 12 Dec 2019 14:31:11 -0800 fix: convert clang-format-ignorelist to use wildcards
Kyle Lippincott <spectral@google.com> [Thu, 12 Dec 2019 14:31:11 -0800] rev 44037
fix: convert clang-format-ignorelist to use wildcards It's very brittle to specify the exact filenames for these vendored/thirdparty libraries; when there's an upgrade, it's likely not going to be updated. Differential Revision: https://phab.mercurial-scm.org/D7619
Wed, 08 Jan 2020 11:59:32 -0500 packaging: update Ubuntu docker build dependencies to Python 3
Connor Sheehan <sheehan@mozilla.com> [Wed, 08 Jan 2020 11:59:32 -0500] rev 44036
packaging: update Ubuntu docker build dependencies to Python 3 Changeset 7574ccd87200f02e updated the Debian docker builds to Python 3. In doing so, the Ubuntu docker-based builds broke, as the Dockerfile does not include the new dependencies as specified in `contrib/packaging/debian/control`. This commit changes the dependencies in the Ubuntu Dockerfile template to their Python 3 equivalents, fixing `make docker-ubuntu-bionic`. Differential Revision: https://phab.mercurial-scm.org/D7810
Tue, 07 Jan 2020 12:09:36 +0100 mmap: add a size argument to mmapread
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Jan 2020 12:09:36 +0100] rev 44035
mmap: add a size argument to mmapread With this argument, we can control the size of the mmap created. (previously it was always the whole file. Differential Revision: https://phab.mercurial-scm.org/D7808
Tue, 07 Jan 2020 12:26:37 +0100 revlogutils: move the NodeMap class in a dedicated nodemap module
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 07 Jan 2020 12:26:37 +0100] rev 44034
revlogutils: move the NodeMap class in a dedicated nodemap module We will introduce more nodemap related code, so it make sense to move the existing code in that module first. Differential Revision: https://phab.mercurial-scm.org/D7809
Thu, 02 Jan 2020 17:27:37 -0800 progress: flush stderr after clearing stable
Kyle Lippincott <spectral@google.com> [Thu, 02 Jan 2020 17:27:37 -0800] rev 44033
progress: flush stderr after clearing On python3, ui.stderr is buffered, it seems, so we need to flush it to actually get the progress bar off the screen. This is important since ui.write() will call into progbar.clear() if it thinks there's a progress bar on the screen, with the intent that the next thing it outputs is at the beginning of the line (instead of at the end of the progress bar line). Without the flush, we buffer up the clearing of the screen, and we get some really weird/corrupt output. Differential Revision: https://phab.mercurial-scm.org/D7784
Sun, 29 Dec 2019 21:10:04 -0500 rcutil: drop the `defaultrcpath()` method (API)
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 21:10:04 -0500] rev 44032
rcutil: drop the `defaultrcpath()` method (API) The resource based code can service py2, py3 and an oxidized executable, so there's no reason to leave this around. It was flagged as an API change when it was introduced, so flagging it again. Differential Revision: https://phab.mercurial-scm.org/D7777
Sun, 29 Dec 2019 21:06:34 -0500 ui: add the ability to apply `defaultrc` configs from resources
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 21:06:34 -0500] rev 44031
ui: add the ability to apply `defaultrc` configs from resources We will want the ability to cat out these resources, but the same would apply to templates, so I'm going to wait for the dust to settle on that. Reading the default config directly from the filesystem is still in place for now. Differential Revision: https://phab.mercurial-scm.org/D7776
Sun, 29 Dec 2019 20:51:44 -0500 ui: refactor `readconfig()` into a form that can consume resources
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:51:44 -0500] rev 44030
ui: refactor `readconfig()` into a form that can consume resources The old form can't completely go away, because files outside of packages still need to be read. The name passed in here is a tuple of `package name, resource` as needed by the resource API. I like the idea of stating the config file is embedded in the executable by listing is as `exe!package.resource`. This would be consistent with how `debuginstall` points to the executable for the python executable, lib, and installed modules. While in practice the filesystem path is available from the backing ResourceReader when the resource is opened, it is a relative path on py2 and absolute on py3. Further, while this would show in the `hg config` output for each option if set as such here, it doesn't show in the `reading from...` line when `--debug` is used. The file isn't actually open where that prints, so there's no way I see to get that info there. So I opted for the simple prefix to distinguish resources from files. Differential Revision: https://phab.mercurial-scm.org/D7775
Sun, 29 Dec 2019 20:35:34 -0500 resourceutil: implement `contents()` to iterate over resources in a package
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:35:34 -0500] rev 44029
resourceutil: implement `contents()` to iterate over resources in a package Differential Revision: https://phab.mercurial-scm.org/D7774
Sun, 29 Dec 2019 20:32:56 -0500 resourceutil: implement `is_resource()`
Matt Harbison <matt_harbison@yahoo.com> [Sun, 29 Dec 2019 20:32:56 -0500] rev 44028
resourceutil: implement `is_resource()` This will be needed when iterating resources. Differential Revision: https://phab.mercurial-scm.org/D7773
Sat, 28 Dec 2019 23:35:13 -0500 resourceutil: don't limit resources to the `mercurial` package
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 23:35:13 -0500] rev 44027
resourceutil: don't limit resources to the `mercurial` package This should make things a little clearer, in that it now requires the full package name to access a resource. But the real motivation is that `extensions._disabledpaths()` walks the `hgext` directory looking for bundled extensions. This in turn feeds, among other things: 1) Listing disabled extensions in `hg help extensions` 2) Indicating that an unknown command is in a non-enabled extension 3) Displaying help for non-enabled extensions 4) Generating documentation 5) Announcing LFS is auto-enabled (or not) when cloning from an LFS source The filesystem based ResourceReader will happily return *.py and *.pyc, but the one supplied by PyOxidizer doesn't. Presumably we can change that. The only other idea I had here is for setup.py to generate a text file containing the list of extensions, but that doesn't seem great when running from source. Differential Revision: https://phab.mercurial-scm.org/D7772
Sat, 28 Dec 2019 23:08:57 -0500 setup: include `defaultrc` in the package list
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 23:08:57 -0500] rev 44026
setup: include `defaultrc` in the package list This is needed to access the config files via the resourceutil framework, which is needed to embed the config files when uing PyOxidizer. Differential Revision: https://phab.mercurial-scm.org/D7771
Tue, 24 Dec 2019 20:17:40 +0300 tests: update test-releasenotes-formatting.t output
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 24 Dec 2019 20:17:40 +0300] rev 44025
tests: update test-releasenotes-formatting.t output The output seems to be left outdated because running this test requires fuzzy-wuzzy which is not generally installed. Differential Revision: https://phab.mercurial-scm.org/D7723
Sat, 28 Dec 2019 02:11:51 -0500 tests: fix a copy/paste name duplication in storage.py
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 02:11:51 -0500] rev 44024
tests: fix a copy/paste name duplication in storage.py Flagged by PyCharm as a redeclared name without usage, because the name matches the function immediately preceding it. But since this differs by doing regular reads instead of raw reads, I assume we still want it. But I don't see either function being called anywhere. Differential Revision: https://phab.mercurial-scm.org/D7769
Sat, 28 Dec 2019 02:02:34 -0500 commit: change default `editor` parameter to None
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 02:02:34 -0500] rev 44023
commit: change default `editor` parameter to None Flagged by PyCharm as a boolean not being callable later where it is used. There's no actual bug here because of `if editor` checks before using. Differential Revision: https://phab.mercurial-scm.org/D7768
Sat, 28 Dec 2019 01:51:17 -0500 cleanup: drop redundant character escapes outside of `[]`
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:51:17 -0500] rev 44022
cleanup: drop redundant character escapes outside of `[]` Flagged by PyCharm. `@`, `:`, `<`, `>`, and `{` aren't special characters. (I'm a bit surprised that it doesn't also want to unescape `}` in schemes.py.) Differential Revision: https://phab.mercurial-scm.org/D7767
Sat, 28 Dec 2019 01:35:05 -0500 cleanup: drop redundant character escapes from `[]` character sets
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:35:05 -0500] rev 44021
cleanup: drop redundant character escapes from `[]` character sets Flagged by PyCharm. Most special characters lose their special meaning inside square brackets. The `-` in util.py doesn't need to be escaped because it is the last character in the set. Differential Revision: https://phab.mercurial-scm.org/D7766
Sat, 28 Dec 2019 01:12:19 -0500 cleanup: replace contiguous spaces in regex patterns with an explicit count
Matt Harbison <matt_harbison@yahoo.com> [Sat, 28 Dec 2019 01:12:19 -0500] rev 44020
cleanup: replace contiguous spaces in regex patterns with an explicit count Flagged by PyCharm, this form should be more readable. Differential Revision: https://phab.mercurial-scm.org/D7765
Mon, 30 Dec 2019 12:17:02 -0500 mq: avoid using `__file__` to compare modules
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Dec 2019 12:17:02 -0500] rev 44019
mq: avoid using `__file__` to compare modules This fixes ~70 tests when using an oxidized executable, bringing the current failure count down to 92 (with 110 skips) when templates/ is copied next to the executable. Differential Revision: https://phab.mercurial-scm.org/D7778
Tue, 31 Dec 2019 16:24:38 -0500 util: avoid referencing `time.clock()` on Windows when missing (issue6238)
Matt Harbison <matt_harbison@yahoo.com> [Tue, 31 Dec 2019 16:24:38 -0500] rev 44018
util: avoid referencing `time.clock()` on Windows when missing (issue6238) It's been removed in 3.8, and issues a deprecation warning since 3.3. Differential Revision: https://phab.mercurial-scm.org/D7780
Mon, 30 Dec 2019 23:53:53 -0500 py3: replace `time.clock()` with `time.perf_counter()`
Matt Harbison <matt_harbison@yahoo.com> [Mon, 30 Dec 2019 23:53:53 -0500] rev 44017
py3: replace `time.clock()` with `time.perf_counter()` The former was removed in 3.8. The util function uses `time.clock()` if the latter is unavailable. Differential Revision: https://phab.mercurial-scm.org/D7779
Wed, 08 Jan 2020 09:59:34 -0800 tests: fix a "naked exception" issue in test-remotefilelog-prefetch.t
Kyle Lippincott <spectral@google.com> [Wed, 08 Jan 2020 09:59:34 -0800] rev 44016
tests: fix a "naked exception" issue in test-remotefilelog-prefetch.t Differential Revision: https://phab.mercurial-scm.org/D7811
Tue, 24 Dec 2019 01:38:02 -0500 subrepo: fix a crash when archiving an svn or git subrepo stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 24 Dec 2019 01:38:02 -0500] rev 44015
subrepo: fix a crash when archiving an svn or git subrepo Only hgsubrepos have a repository attribute. This is pretty hacky, but probably the best we can do on stable. Pushing the lfstatus check down into the wrapper for hgsubrepo (and dropping the check for lfstatus at the top of `hgsubrepoarchive()`) resulted in various test failures because: 1) hgsubrepoarchive isn't returning the number of files archived at the bottom, resulting in an error about += NoneType 2) These copypasta archive wrappers don't use progress bars 3) Largefiles are *not* currently archived when using extdiff (68822b7cdd01), but pushing this context manager down into the subrepo resulted in it apparently doing so (as evidenced by progress bars being dropped) The other uses of `lfstatus()` are not in the substate processing loop, so they shouldn't be an issue. I initially put testcases in this test for largefiles-{on,off}, and it flagged a bunch of exit code differences for `cat` and `diff`, so I backed that off. Differential Revision: https://phab.mercurial-scm.org/D7714
Thu, 12 Dec 2019 18:31:17 +0100 rust-index: add a `experimental.rust.index` option to use the wrapper
Georges Racinet <georges.racinet@octobus.net> [Thu, 12 Dec 2019 18:31:17 +0100] rev 44014
rust-index: add a `experimental.rust.index` option to use the wrapper Now we can start putting this wrapper on the test and benchmark grill. Differential Revision: https://phab.mercurial-scm.org/D7660
Wed, 11 Dec 2019 18:10:20 +0100 rust-index: use the new method in shortesthexnodeidprefix
Georges Racinet <georges.racinet@octobus.net> [Wed, 11 Dec 2019 18:10:20 +0100] rev 44013
rust-index: use the new method in shortesthexnodeidprefix This code can now run with both a Rust or a C index. Differential Revision: https://phab.mercurial-scm.org/D7659
Thu, 12 Dec 2019 03:39:14 +0100 rust-index: expose a method to retrieve the C index
Georges Racinet <georges.racinet@octobus.net> [Thu, 12 Dec 2019 03:39:14 +0100] rev 44012
rust-index: expose a method to retrieve the C index The code for `shortesthexnodeidprefix` need to access the actual C index. For now we grant its wish and expose a method to do so. Once we have the nodemap in Rust, we will be able to implement the same feature from rust and we will be able to drop this method. Differential Revision: https://phab.mercurial-scm.org/D7658
Thu, 12 Dec 2019 18:11:44 +0100 rust-index: handle `MixedIndex` in `pyindex_to_graph`
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 12 Dec 2019 18:11:44 +0100] rev 44011
rust-index: handle `MixedIndex` in `pyindex_to_graph` On the long run we will want to implement the Graph trait directly in Rust, but for now we take the path with the least amount of change to focus on the coming persistent NodeMap code. We test this new code through with the lazy ancestors code. Differential Revision: https://phab.mercurial-scm.org/D7657
Fri, 13 Dec 2019 19:52:26 +0100 rust-index: make it possible to clone the struct referencing the C index
Georges Racinet <georges.racinet@octobus.net> [Fri, 13 Dec 2019 19:52:26 +0100] rev 44010
rust-index: make it possible to clone the struct referencing the C index If we are to hand over the C index object to other code, we need to be able to create a new python reference to it. Differential Revision: https://phab.mercurial-scm.org/D7656
Fri, 06 Dec 2019 20:40:02 -0500 match: resolve filesets against the passed `cwd`, not the current one
Matt Harbison <matt_harbison@yahoo.com> [Fri, 06 Dec 2019 20:40:02 -0500] rev 44009
match: resolve filesets against the passed `cwd`, not the current one This allows filesets to be resolved relative to `repo.root`, the same as other patterns are since f02d3c0eed18. The current example in contrib/ wasn't working from the tests directory because of this. Differential Revision: https://phab.mercurial-scm.org/D7570
Thu, 12 Dec 2019 14:28:31 -0800 fix: correct the clang-format example hgrc so that it actually works
Kyle Lippincott <spectral@google.com> [Thu, 12 Dec 2019 14:28:31 -0800] rev 44008
fix: correct the clang-format example hgrc so that it actually works There are three changes here: * Remove -i from `command`, it causes fix to eat your file and empty it out * Add `set:` to pattern, otherwise this is interpreted as just a glob * Switch `listfile:` to `include:`; `listfile:` is relative to the current working directory, while `include:` is relative to the repo root. This makes it so that you don't receive errors when running outside of the repo root about being unable to find the file. Differential Revision: https://phab.mercurial-scm.org/D7618
Wed, 18 Dec 2019 00:41:12 -0500 inno: drop support for Windows 95/98/ME
Matt Harbison <matt_harbison@yahoo.com> [Wed, 18 Dec 2019 00:41:12 -0500] rev 44007
inno: drop support for Windows 95/98/ME Differential Revision: https://phab.mercurial-scm.org/D7696
Wed, 25 Dec 2019 19:03:07 +0100 rust-matchers: fixing cargo doc
Georges Racinet <georges.racinet@octobus.net> [Wed, 25 Dec 2019 19:03:07 +0100] rev 44006
rust-matchers: fixing cargo doc Block quotes marked as `ignore` are still parsed as Rust source examples. Differential Revision: https://phab.mercurial-scm.org/D7783
Wed, 25 Dec 2019 15:17:55 +0100 rust-core: extracted a revlog submodule
Georges Racinet <georges.racinet@octobus.net> [Wed, 25 Dec 2019 15:17:55 +0100] rev 44005
rust-core: extracted a revlog submodule This moves fundamental definitions from the top of the crate to the newly created `revlog` submodule and reexports them for easy compatibility. As we are about to add new features to this crate, we felt it will improve clarity, and moreso if `ancestors` and `dagops` would become submodules of `revlog`. Differential Revision: https://phab.mercurial-scm.org/D7782
Thu, 19 Dec 2019 00:32:42 -0800 phases: make the working directory consistently a draft
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Thu, 19 Dec 2019 00:32:42 -0800] rev 44004
phases: make the working directory consistently a draft Before this change, `hg log -r 'wdir() and public()'` would return it. Differential Revision: https://phab.mercurial-scm.org/D7705
Wed, 25 Dec 2019 14:53:45 +0100 rust-core: updated copyright notice
Georges Racinet <georges.racinet@octobus.net> [Wed, 25 Dec 2019 14:53:45 +0100] rev 44003
rust-core: updated copyright notice The intention here is to put an email address that actually works (I did have full personal copyrights with my former affiliation). It is also an opportunity to acknowledge that I've not been the only one to work on this file. Differential Revision: https://phab.mercurial-scm.org/D7781
Fri, 27 Dec 2019 09:55:35 -0800 tests: fix failing doctest in match.py by adding dummy auditor
Martin von Zweigbergk <martinvonz@google.com> [Fri, 27 Dec 2019 09:55:35 -0800] rev 44002
tests: fix failing doctest in match.py by adding dummy auditor It was failing with "OSError: [Errno 13] Permission denied: '/root/sub'". It has been failing since 8b1a9ba375e5 (match: make sure `root` argument is always an absolute path (API), 2019-12-13). I don't know why I didn't notice it before sending that patch. Differential Revision: https://phab.mercurial-scm.org/D7731
Thu, 02 Jan 2020 17:30:27 -0800 remotefilelog: actually fix (and test this time) a bytes vs str issue
Kyle Lippincott <spectral@google.com> [Thu, 02 Jan 2020 17:30:27 -0800] rev 44001
remotefilelog: actually fix (and test this time) a bytes vs str issue I attempted this in 94670e124d29 but we didn't actually have any tests for this function it seems, and I mistook "it works now" for it being fixed (when what had actually happened was that my cache had populated enough that I didn't trigger the minimum threshold on my reattempts). Differential Revision: https://phab.mercurial-scm.org/D7785
Tue, 07 Jan 2020 09:26:06 -0500 merge with stable
Augie Fackler <augie@google.com> [Tue, 07 Jan 2020 09:26:06 -0500] rev 44000
merge with stable
Mon, 06 Jan 2020 14:58:32 -0500 Added signature for changeset b4c82b704180 stable
Augie Fackler <raf@durin42.com> [Mon, 06 Jan 2020 14:58:32 -0500] rev 43999
Added signature for changeset b4c82b704180
Mon, 06 Jan 2020 14:58:31 -0500 Added tag 5.2.2 for changeset b4c82b704180 stable
Augie Fackler <raf@durin42.com> [Mon, 06 Jan 2020 14:58:31 -0500] rev 43998
Added tag 5.2.2 for changeset b4c82b704180
Fri, 27 Dec 2019 19:00:38 -0500 revset: drop some unused code in the `remote` revset
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Dec 2019 19:00:38 -0500] rev 43997
revset: drop some unused code in the `remote` revset PyCharm flagged the `revs = [..]` as an unused assignment. But then neither `revs` nor `checkout` is used, and I can't see where `hg.addbranchrevs()` has external side effects. Differential Revision: https://phab.mercurial-scm.org/D7764
Fri, 27 Dec 2019 18:52:48 -0500 tests: avoid using a list comprehension to fill a list with fixed values
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Dec 2019 18:52:48 -0500] rev 43996
tests: avoid using a list comprehension to fill a list with fixed values Flagged by PyCharm as an unused assignment for the variable in the list. Differential Revision: https://phab.mercurial-scm.org/D7763
Fri, 27 Dec 2019 18:21:41 -0500 histedit: avoid using a list comprehension to fill a list with fixed values
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Dec 2019 18:21:41 -0500] rev 43995
histedit: avoid using a list comprehension to fill a list with fixed values Flagged by PyCharm as an unused assignment for the variable in the list. Differential Revision: https://phab.mercurial-scm.org/D7762
Sat, 28 Dec 2019 09:55:45 -0800 zstandard: vendor python-zstandard 0.13.0
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 28 Dec 2019 09:55:45 -0800] rev 43994
zstandard: vendor python-zstandard 0.13.0 Version 0.13.0 of the package was just released. It contains an upgraded zstd C library which can result in some performance wins, official support for Python 3.8, and a blackened code base. There were no meaningful code or functionality changes in this release of python-zstandard: just reformatting and an upgraded zstd library version. So the diff seems much larger than what it is. Files were added without modifications. The clang-format-ignorelist file was updated to reflect a new header file in the zstd distribution. # no-check-commit because 3rd party code has different style guidelines Differential Revision: https://phab.mercurial-scm.org/D7770
Fri, 27 Dec 2019 18:54:57 -0500 hgweb: delete a local variable instead of setting to `None`
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Dec 2019 18:54:57 -0500] rev 43993
hgweb: delete a local variable instead of setting to `None` The previous code was flagged by PyCharm as an unused variable assignment. Differential Revision: https://phab.mercurial-scm.org/D7761
Fri, 27 Dec 2019 18:52:15 -0500 tests: drop unused local variable assignments in linelog
Matt Harbison <matt_harbison@yahoo.com> [Fri, 27 Dec 2019 18:52:15 -0500] rev 43992
tests: drop unused local variable assignments in linelog Flagged by PyCharm. Differential Revision: https://phab.mercurial-scm.org/D7760
(0) -30000 -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 tip