Thu, 23 Apr 2020 18:48:36 -0700 packaging: add -python2 to Windows installer filenames stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 23 Apr 2020 18:48:36 -0700] rev 44754
packaging: add -python2 to Windows installer filenames We just taught the Windows installers to produce Python 3 variants built with PyOxidizer. Our plan is to publish both Python 2 and Python 3 versions of the installers for Mercurial 5.4. This commit teaches the Inno and WiX installers to add an optional string suffix to the installer name. On Python 2, that suffix is "-python2." We reserve the existing name for the Python 3 installers, which we want to make the default. Differential Revision: https://phab.mercurial-scm.org/D8479
Thu, 23 Apr 2020 17:24:37 -0700 automation: support building Windows wheels for Python 3.7 and 3.8 stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 23 Apr 2020 17:24:37 -0700] rev 44753
automation: support building Windows wheels for Python 3.7 and 3.8 The time has come to support Python 3 on Windows. Let's teach our automation code to produce Windows wheels for Python 3.7 and 3.8. We could theoretically support 3.5 and 3.6. But I don't think it is worth it. People on Windows generally use the Mercurial installers, not wheels. And I'd prefer we limit variability and not have to worry about supporting earlier Python versions if it can be helped. As part of this, we change the invocation of pip to `python.exe -m pip`, as this is what is being recommended in Python docs these days. And it seemed to be required to avoid a weird build error. Why, I'm not sure. But it looks like pip was having trouble finding a Visual Studio files when invoked as `pip.exe` but not when using `python.exe -m pip`. Who knows. Differential Revision: https://phab.mercurial-scm.org/D8478
Mon, 20 Apr 2020 17:42:50 -0700 packaging: support building WiX installers with PyOxidizer stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 20 Apr 2020 17:42:50 -0700] rev 44752
packaging: support building WiX installers with PyOxidizer We initially implemented PyOxidizer support for Inno installers. That did most of the heavy work of integrating PyOxidizer into the packaging system. Implementing WiX installer support was pretty straightforward. Aspects of this patch look very similar to Inno's. The main difference is the handling of the Visual C++ Redistributable Runtime files. The WiX installer was formerly using merge modules to install the VC++ 9.0 runtime because this feature is supported by the WiX installer (it isn't easily available to Inno installers). Our strategy for the runtime files is to install the vcruntime140.dll file next to hg.exe just like any other file. While we could leverage WiX's functionality for invoking a VCRedist installer, I don't want to deal with the complexity at this juncture. So, we let run_pyoxidizer() copy vcruntime140.dll into the staging directory (like it does for Inno) and our dynamic WiX XML generator picks it up as a regular file and installs it. We did, however, have to teach mercurial.wxs how to conditionally use the merge modules. But this was rather straightforward. Comparing the file layout of the WiX installers before and after: * Various lib/*.{pyd, dll} files no longer exist * python27.dll was replaced by python37.dll * vcruntime140.dll was added All these changes are expected due to the transition to Python 3 and to PyOxidizer, which embeded the .pyd and .dll files in hg.exe. Differential Revision: https://phab.mercurial-scm.org/D8477
Mon, 20 Apr 2020 18:24:35 -0700 packaging: move version derivation to run_wix_packaging() stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 20 Apr 2020 18:24:35 -0700] rev 44751
packaging: move version derivation to run_wix_packaging() With the previous commit moving signing inline, we no longer need to compute the version string in build_installer() and can instead move this logic to run_wix_packaging(). This makes the logic in build_installer() simpler, which makes it easier to implement alternate building mechanisms. Differential Revision: https://phab.mercurial-scm.org/D8476
Mon, 20 Apr 2020 17:53:20 -0700 packaging: integrate signing into run_wix_packaging() stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 20 Apr 2020 17:53:20 -0700] rev 44750
packaging: integrate signing into run_wix_packaging() Previously, signing was implemented via a separate function which called build_installer() and then called signing functionality. In this model, in order to implement an alternative build mechanism, we would have to invent a new variant to handle signing as well. This commit merges the signing logic into the function invoking wix. If we pass an argument holding metadata about how to sign, we sign hg.exe and the installer. This means all we have to do is pass in signing info and the signing just works. A slight change here is that signing of hg.exe happens in the staging directory as opposed to before the staging directory is populated. I don't think this matters. Differential Revision: https://phab.mercurial-scm.org/D8475
Mon, 20 Apr 2020 17:33:41 -0700 packaging: isolate invocation of WiX to own function stable
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 20 Apr 2020 17:33:41 -0700] rev 44749
packaging: isolate invocation of WiX to own function Like we did for Inno, we want to split out the building of Mercurial from invoking the packaging tool so that we can introduce an alternate build mechanism. As part of this refactor, there are inconsequential changes to file layouts. Before, some shared files such as the WiX binaries and merge modules would be installed under build/. Now, they are installed under build/wix-*. This is to keep implementation simpler. But it also helps keep build state more isolated. Differential Revision: https://phab.mercurial-scm.org/D8474
Thu, 23 Apr 2020 18:06:02 -0700 packaging: support building Inno installer with PyOxidizer stable
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 23 Apr 2020 18:06:02 -0700] rev 44748
packaging: support building Inno installer with PyOxidizer We want to start distributing Mercurial on Python 3 on Windows. PyOxidizer will be our vehicle for achieving that. This commit implements basic support for producing Inno installers using PyOxidizer. While it is an eventual goal of PyOxidizer to produce installers, those features aren't yet implemented. So our strategy for producing Mercurial installers is similar to what we've been doing with py2exe: invoke a build system to produce files then stage those files into a directory so they can be turned into an installer. We had to make significant alterations to the pyoxidizer.bzl config file to get it to produce the files that we desire for a Windows install. This meant differentiating the build targets so we can target Windows specifically. We've added a new module to hgpackaging to deal with interacting with PyOxidizer. It is similar to pyexe: we invoke a build process then copy files to a staging directory. Ideally these extra files would be defined in pyoxidizer.bzl. But I don't think it is worth doing at this time, as PyOxidizer's config files are lacking some features to make this turnkey. The rest of the change is introducing a variant of the Inno installer code that invokes PyOxidizer instead of py2exe. Comparing the Python 2.7 based Inno installers with this one, the following changes were observed: * No lib/*.{pyd, dll} files * No Microsoft.VC90.CRT.manifest * No msvc{m,p,r}90.dll files * python27.dll replaced with python37.dll * Add vcruntime140.dll file The disappearance of the .pyd and .dll files is acceptable, as PyOxidizer has embedded these in hg.exe and loads them from memory. The disappearance of the *90* files is acceptable because those provide the Visual C++ 9 runtime, as required by Python 2.7. Similarly, the appearance of vcruntime140.dll is a requirement of Python 3.7. Differential Revision: https://phab.mercurial-scm.org/D8473
Sun, 19 Apr 2020 15:35:21 -0700 packaging: split Inno installer building from Mercurial building stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 15:35:21 -0700] rev 44747
packaging: split Inno installer building from Mercurial building We want to make the logic for producing the installer agnostic about how Mercurial is built to allow for alternate build methods (like PyOxidizer). Differential Revision: https://phab.mercurial-scm.org/D8472
Sun, 19 Apr 2020 14:25:27 -0700 packaging: remove pyoxidizer.bzl from packaging directory stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 14:25:27 -0700] rev 44746
packaging: remove pyoxidizer.bzl from packaging directory We have another version in rust/hgcli that is more modern and is already associated with our Rust CLI project. Differential Revision: https://phab.mercurial-scm.org/D8471
Sun, 19 Apr 2020 14:16:24 -0700 contrib: install PyOxidizer in Linux and Windows environments stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 14:16:24 -0700] rev 44745
contrib: install PyOxidizer in Linux and Windows environments For Linux, this was trivial. For Windows, we need to teach the powershell script to install Rust as well. This was also pretty straightforward. Differential Revision: https://phab.mercurial-scm.org/D8468
Thu, 30 Apr 2020 15:10:05 +0200 diff: re-establish linear runtime performance stable
Elmar Bartel <elb_hg@leo.org> [Thu, 30 Apr 2020 15:10:05 +0200] rev 44744
diff: re-establish linear runtime performance The previous method with sum() and list() creates a new list object for every hunk. Then sum() is used to flatten out this sequence of lists. The sum() function is not "lazy", but creates a new list object for every "+" operation and so this code had quadratic runtime behaviour.
Thu, 23 Apr 2020 09:59:38 +0200 rust-status: check for '.hg' regardless of file type (issue6300) stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Apr 2020 09:59:38 +0200] rev 44743
rust-status: check for '.hg' regardless of file type (issue6300) '.hg' would show up in `hg status` if were a symlink. Differential Revision: https://phab.mercurial-scm.org/D8461
Mon, 20 Apr 2020 11:03:31 +0200 rust: remove extra empty line stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 20 Apr 2020 11:03:31 +0200] rev 44742
rust: remove extra empty line This is a gratuitous cleanup. Differential Revision: https://phab.mercurial-scm.org/D8460
Wed, 15 Apr 2020 18:10:19 +0200 upgrade: properly filter action depending on planned work stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Apr 2020 18:10:19 +0200] rev 44741
upgrade: properly filter action depending on planned work The `determineactions` function filters out deficiency that are not scheduled to be fixed by the target repository configuration. However it only did so for requirement we currently support, letting other actions for unsupported requirement through even if the target repo configuration did not request it. As a result the output of the command was easily polluted by experimental feature with no upgrade support. We rework the code to still filter out requirement based action without the faulty filtering. Differential Revision: https://phab.mercurial-scm.org/D8427
Mon, 13 Apr 2020 18:04:55 +0200 nodemap: skip persistent nodemap warming for revlog not using it stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 13 Apr 2020 18:04:55 +0200] rev 44740
nodemap: skip persistent nodemap warming for revlog not using it Before this patch, the usual checking (especially, inline-ess) were not performed when warming the cache through `hg debugupdatecache`. This is now fixed. Differential Revision: https://phab.mercurial-scm.org/D8408
Thu, 16 Apr 2020 22:56:03 +0200 wait-on-file: adjust the timer counter stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 16 Apr 2020 22:56:03 +0200] rev 44739
wait-on-file: adjust the timer counter The wait performed in increment of 0.01 second, but the timer was expressed in second. So we did not wait 20s, we waited 0.2 second. Internally we adjust the counter to be expressed in centisecond. This prevent some flackyness in the test. Differential Revision: https://phab.mercurial-scm.org/D8453
Sun, 19 Apr 2020 17:33:08 -0700 packaging: add docutils as dependency stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 17:33:08 -0700] rev 44738
packaging: add docutils as dependency The previous commit revealed that attempting to run `python setup.py build_doc` from the packaging virtualenv failed due to missing docutils package. We didn't notice this before because py2exe Windows packaging appears to use a Python from another virtualenv (which does include docutils) to invoke setup.py. I discovered this as part of implementing packaging outside of that virtualenv environment. Differential Revision: https://phab.mercurial-scm.org/D8470
Sun, 19 Apr 2020 17:26:52 -0700 setup: use sysstr() on process output stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 17:26:52 -0700] rev 44737
setup: use sysstr() on process output Otherwise we get a str-bytes mismatch on Python 3 if an error occurs. Differential Revision: https://phab.mercurial-scm.org/D8469
Sat, 28 Mar 2020 08:18:11 -0700 automation: install latest Python versions in Linux stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 28 Mar 2020 08:18:11 -0700] rev 44736
automation: install latest Python versions in Linux Staying up to date. Keeping parity with the Windows environment. Differential Revision: https://phab.mercurial-scm.org/D8467
Tue, 21 Apr 2020 19:33:57 -0700 contrib: update to latest Python 2.7, 3.7, and 3.8 stable
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 21 Apr 2020 19:33:57 -0700] rev 44735
contrib: update to latest Python 2.7, 3.7, and 3.8 We would ideally update the 3.5 and 3.6 versions as well. But Python didn't generate exe installers for newer versions for some reason. Differential Revision: https://phab.mercurial-scm.org/D8466
Sun, 19 Apr 2020 13:29:50 -0700 automation: always use latest Windows AMI stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 19 Apr 2020 13:29:50 -0700] rev 44734
automation: always use latest Windows AMI The old AMI isn't available any more. We seem to run into this problem every few months. Amazon (or Microsoft) appears to be removing the old AMIs when they are superseded or something. Let's give up on tracking known images and switch the image selection logic to use the latest published image. Differential Revision: https://phab.mercurial-scm.org/D8465
Fri, 17 Apr 2020 21:00:18 -0400 tests: stabilize test-log.t on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 17 Apr 2020 21:00:18 -0400] rev 44733
tests: stabilize test-log.t on Windows I think this is because Windows doesn't recognize single quote. Other ssh based clones use this clunky style too. Differential Revision: https://phab.mercurial-scm.org/D8459
Fri, 17 Apr 2020 18:47:31 -0400 tests: stabilize test-convert-hg-source.t on Windows stable
Matt Harbison <matt_harbison@yahoo.com> [Fri, 17 Apr 2020 18:47:31 -0400] rev 44732
tests: stabilize test-convert-hg-source.t on Windows This was a missing update in 1b8fd4af3318. Differential Revision: https://phab.mercurial-scm.org/D8458
Thu, 16 Apr 2020 22:55:41 +0530 Added signature for changeset 26ce8e751503 stable
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 16 Apr 2020 22:55:41 +0530] rev 44731
Added signature for changeset 26ce8e751503
Thu, 16 Apr 2020 22:55:40 +0530 Added tag 5.4rc0 for changeset 26ce8e751503 stable
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 16 Apr 2020 22:55:40 +0530] rev 44730
Added tag 5.4rc0 for changeset 26ce8e751503
Thu, 16 Apr 2020 22:51:09 +0530 merge default into stable for 5.4 release stable 5.4rc0
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 16 Apr 2020 22:51:09 +0530] rev 44729
merge default into stable for 5.4 release
Thu, 16 Apr 2020 22:30:11 +0900 templatekw: fix shownames() to check if namespace exists in repo (issue6301)
Yuya Nishihara <yuya@tcha.org> [Thu, 16 Apr 2020 22:30:11 +0900] rev 44728
templatekw: fix shownames() to check if namespace exists in repo (issue6301) Namespace registration is dynamic, but the corresponding template keyword is registered statically.
Wed, 15 Apr 2020 20:10:35 +0200 wait-on-file: use proper variable in math
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Apr 2020 20:10:35 +0200] rev 44727
wait-on-file: use proper variable in math This seems better and safer to be explicit. Differential Revision: https://phab.mercurial-scm.org/D8426
Wed, 15 Apr 2020 20:08:36 +0200 wait-on-file: don't quote arithmetic argument
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 15 Apr 2020 20:08:36 +0200] rev 44726
wait-on-file: don't quote arithmetic argument This is unnecessary and Mac OS X choke on them. Differential Revision: https://phab.mercurial-scm.org/D8425
Tue, 14 Apr 2020 19:09:56 -0400 graft: exit 1 on conflicts, like merge
Valentin Gatien-Baron <vgatien-baron@janestreet.com> [Tue, 14 Apr 2020 19:09:56 -0400] rev 44725
graft: exit 1 on conflicts, like merge It's more consistent, and makes it nicer to script around hg if you don't have to ignore exit code 255, which is the error code for basically everything in hg. Differential Revision: https://phab.mercurial-scm.org/D8423
Fri, 10 Apr 2020 19:58:34 +0200 tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems
Joerg Sonnenberger <joerg@bec.de> [Fri, 10 Apr 2020 19:58:34 +0200] rev 44724
tests: deal with "ls" vs "ls -A" difference on 2BSD derived systems BSD-derived systems will use "ls -A" when running as root. Adjust the test cases to always use the flag and include .hg and related output as appropiately. Differential Revision: https://phab.mercurial-scm.org/D8397
Fri, 10 Apr 2020 19:53:36 +0200 tests: skip non-readable check for root
Joerg Sonnenberger <joerg@bec.de> [Fri, 10 Apr 2020 19:53:36 +0200] rev 44723
tests: skip non-readable check for root Trying to check for errors on non-readable hgrc requires UNIX permissions, but still won't work for root. So adjust the check. Differential Revision: https://phab.mercurial-scm.org/D8396
Fri, 10 Apr 2020 19:52:33 +0200 tests: skip CVS tests for root
Joerg Sonnenberger <joerg@bec.de> [Fri, 10 Apr 2020 19:52:33 +0200] rev 44722
tests: skip CVS tests for root It is not uncommon for cvs to check for root and to refuse work in that case. Differential Revision: https://phab.mercurial-scm.org/D8395
Wed, 15 Apr 2020 22:18:05 -0400 make: drop the `-c` arg to `install` in the documentation makefile
Matt Harbison <matt_harbison@yahoo.com> [Wed, 15 Apr 2020 22:18:05 -0400] rev 44721
make: drop the `-c` arg to `install` in the documentation makefile This arg caused `gmake install` on OpenIndiana 2019.10 (illumos) fail with: install: The -c, -f, -n options each require a directory following! install: The -c, -f, -n options each require a directory following! install: The -c, -f, -n options each require a directory following! gmake[1]: *** [Makefile:41: install] Error 2 gmake[1]: Leaving directory '/usr/local/share/mercurial/doc' The workaround is to run `gmake install-bin`. The man page for 10.14 says this is to copy the file and is only for compatability, as it is the default. The CentOS 7 man page says it is ignored. The top level makefile doesn't use this argument at all, so I'm not sure why it's here. Differential Revision: https://phab.mercurial-scm.org/D8439
Tue, 14 Apr 2020 18:51:23 -0400 phabricator: restack any new orphans created by phabsend (issue6045)
Matt Harbison <matt_harbison@yahoo.com> [Tue, 14 Apr 2020 18:51:23 -0400] rev 44720
phabricator: restack any new orphans created by phabsend (issue6045) Previously, posting a new review for a non head commit would orphan the head. The general case is any descendant of the selected revisions got orphaned if this was the first time the selected revisions were submitted. It doesn't happen when resubmitting. I've already had coworkers hit this a few times and get confused. Since posting a review isn't generally thought of as an editing operation, it would probably be easier for new users if we just restacked. This avoids restacking existing orphans around the submission because that may involve merge conflict resolution. Users who already have orphans should know how to stabilize them anyway. Differential Revision: https://phab.mercurial-scm.org/D8438
Sun, 12 Apr 2020 13:11:42 -0400 phabricator: prevent posting obsolete commits
Matt Harbison <matt_harbison@yahoo.com> [Sun, 12 Apr 2020 13:11:42 -0400] rev 44719
phabricator: prevent posting obsolete commits I don't see why this would be useful in the first place. But I had a coworker submit a single commit that was not a branch head, and the result was to orphan its child and keep the original commit visible. He then did up arrow + Enter, and it happily created a new review (since the URL isn't amended into the original commit specified on the command line) and a new successor, resulting in a local divergence. I'd like to fix the issue with creating orphans, but this is simple enough to prevent on its own. Differential Revision: https://phab.mercurial-scm.org/D8437
Tue, 03 Mar 2020 17:37:09 -0500 phabricator: avoid creating unstable children within the review stack
Matt Harbison <matt_harbison@yahoo.com> [Tue, 03 Mar 2020 17:37:09 -0500] rev 44718
phabricator: avoid creating unstable children within the review stack The instability occurred when rebasing something that has already been submitted onto something that hasn't, and then resubmitting the stack. Or as the test shows, just resubmitting and including something earlier that wasn't previously submitted. There's a general case here where any children (not just the ones in the range of commits posted for review) should be re-stabilized. But handling the selected commits here will cause the `local:commit` node values that are tracked on Phabricator to be properly kept in sync. Differential Revision: https://phab.mercurial-scm.org/D8436
Wed, 08 Apr 2020 17:30:10 -0400 phabricator: add an option to fold several commits into one review (issue6244)
Matt Harbison <matt_harbison@yahoo.com> [Wed, 08 Apr 2020 17:30:10 -0400] rev 44717
phabricator: add an option to fold several commits into one review (issue6244) Now that all of the pieces are in place, alter the user facing command to allow it. This is the default behavior when using `arc`, but I much prefer the 1:1 approach, and I'm tempted to mark this advanced to limit its abuse. I started out calling this `--no-stack` like the feature request suggested, but I found it less obvious (especially when writing the code), so I went with the `hg fold` analogue. This will populate the `Commits` tab in the web UI with the hash of each commit folded into the review. From experimentation, it seems to list them in the order they are received from the extension instead of the actual parent/child relationship. The extension sends them in sorted order, thanks to `templatefilters.json()`. Since there's enough info there for them to put things in the right order, JSON is unordered aside from lists (IIUC), and there doesn't seem to be any harmful side effects, I guess we write this off as their bug. It is simple enough to workaround by putting a check for `util.sortdict` into `templatefilters.json()`, and don't resort in that case. There are a handful of restrictions that are documented in the code, which somebody could probably fix if they're interested. Notably, this requires the (default) `--amend` option, because there's not an easy way to apply a local tag across several commits. This also doesn't do preflight checking to ensure that all previous commits that were part of a single review are selected when updating. That seems expensive. What happens is the excluded commit is dropped from the review, but it keeps the Differential Revision line in the commit message. Not everything can be edited, so it doesn't seem worth making the code even more complicated to handle this edge case. There are a couple of "obsolete feature not enabled but X markers found!" messages that appeared on Windows but not macOS. I have no idea what's going on here, but that's an unrelated issue, so I conditionalized those lines. Differential Revision: https://phab.mercurial-scm.org/D8314
Wed, 08 Apr 2020 17:07:19 -0400 tests: move the phabricator auth token to the global config file
Matt Harbison <matt_harbison@yahoo.com> [Wed, 08 Apr 2020 17:07:19 -0400] rev 44716
tests: move the phabricator auth token to the global config file The next commit introduces a new repo to simplify its development. This value needs to be modified to record tests, so it doesn't make sense to have to do that twice. The callsign and URL are *not* moved because there are tests that fallback to the .arcconfig file when those aren't present. Differential Revision: https://phab.mercurial-scm.org/D8390
Sun, 05 Apr 2020 21:19:21 -0400 phabricator: add debug logging to show previous node values in `phabsend`
Matt Harbison <matt_harbison@yahoo.com> [Sun, 05 Apr 2020 21:19:21 -0400] rev 44715
phabricator: add debug logging to show previous node values in `phabsend` This isn't real useful here, but was very useful showing how `phabsend --fold` handles commits created by `hg fold` and `hg split`. It introduces a new debug function and flag instead of using `ui.debug()`, because `--debug` prints out all of the API chatter. Differential Revision: https://phab.mercurial-scm.org/D8389
Thu, 16 Apr 2020 17:31:29 +0200 rust: update README with new information about the Re2 path
Raphaël Gomès <rgomes@octobus.net> [Thu, 16 Apr 2020 17:31:29 +0200] rev 44714
rust: update README with new information about the Re2 path Differential Revision: https://phab.mercurial-scm.org/D8452
Thu, 16 Apr 2020 17:31:11 +0200 rust: add option of static linking a local Re2 install
Raphaël Gomès <rgomes@octobus.net> [Thu, 16 Apr 2020 17:31:11 +0200] rev 44713
rust: add option of static linking a local Re2 install Previously, only dynamically linking the system-wide install was possible. We force the user to provide one to prevent hard-to-track errors. Differential Revision: https://phab.mercurial-scm.org/D8451
Wed, 15 Apr 2020 23:11:55 +0900 templatekw: cache mergestate even if merge is not ongoing
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Apr 2020 23:11:55 +0900] rev 44712
templatekw: cache mergestate even if merge is not ongoing While playing with eBPF, I noticed .hg/merge/state{,2} files were tried to open() for each revision. That's not healthy. Let's cache the "inactive" state as well.
Wed, 15 Apr 2020 19:24:21 +0900 revset: remove explicit sort() from unstable()
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Apr 2020 19:24:21 +0900] rev 44711
revset: remove explicit sort() from unstable() The instability should be dealt with by baseset.__init__(), and the returned smartset is ordered by 'subset &' anyway.
Fri, 10 Apr 2020 22:23:44 +0800 revset: implement a simple 'foo#generations' expression
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Apr 2020 22:23:44 +0800] rev 44710
revset: implement a simple 'foo#generations' expression The result of this expression is equivalent to 'foo#g[:]': all reachable ancestors and descendants of a revset foo. While not very useful functionality on its own, its implementation can be tested and revset.relations dict can be easily used by extensions to add other non-subscript relations. Differential Revision: https://phab.mercurial-scm.org/D8394
Fri, 10 Apr 2020 22:22:09 +0800 revset: rename generationsrel() to generationssubrel()
Anton Shestakov <av6@dwimlabs.net> [Fri, 10 Apr 2020 22:22:09 +0800] rev 44709
revset: rename generationsrel() to generationssubrel() This highlights that this is an implementation of 'x#y[z]' relation subscript operator as opposed to 'x#y' relation operator. Differential Revision: https://phab.mercurial-scm.org/D8393
Thu, 02 Apr 2020 16:02:21 -0400 manifest: leave a TODO where we may have more work for sha1 portability
Augie Fackler <augie@google.com> [Thu, 02 Apr 2020 16:02:21 -0400] rev 44708
manifest: leave a TODO where we may have more work for sha1 portability Differential Revision: https://phab.mercurial-scm.org/D8375
Wed, 08 Jan 2020 11:33:01 -0500 manifest: add test for long hashes
Augie Fackler <augie@google.com> [Wed, 08 Jan 2020 11:33:01 -0500] rev 44707
manifest: add test for long hashes Differential Revision: https://phab.mercurial-scm.org/D8373
Thu, 02 Apr 2020 16:24:34 -0400 manifest: remove a final 40-byte assumption from pure-python parser
Augie Fackler <augie@google.com> [Thu, 02 Apr 2020 16:24:34 -0400] rev 44706
manifest: remove a final 40-byte assumption from pure-python parser Differential Revision: https://phab.mercurial-scm.org/D8372
Thu, 02 Apr 2020 16:01:36 -0400 manifest: fix yet another 20-byte-hash assumption
Augie Fackler <augie@google.com> [Thu, 02 Apr 2020 16:01:36 -0400] rev 44705
manifest: fix yet another 20-byte-hash assumption Differential Revision: https://phab.mercurial-scm.org/D8371
Thu, 02 Apr 2020 15:57:07 -0400 manifest: fix another pure-parsing 20-byte assumption
Augie Fackler <augie@google.com> [Thu, 02 Apr 2020 15:57:07 -0400] rev 44704
manifest: fix another pure-parsing 20-byte assumption Differential Revision: https://phab.mercurial-scm.org/D8370
Thu, 02 Apr 2020 15:52:10 -0400 manifest: teach treemanifest about long hashes
Augie Fackler <augie@google.com> [Thu, 02 Apr 2020 15:52:10 -0400] rev 44703
manifest: teach treemanifest about long hashes Differential Revision: https://phab.mercurial-scm.org/D8369
Tue, 07 Jan 2020 13:47:29 -0500 manifest: start removing 40-byte hash restrictions from C code
Augie Fackler <augie@google.com> [Tue, 07 Jan 2020 13:47:29 -0500] rev 44702
manifest: start removing 40-byte hash restrictions from C code Differential Revision: https://phab.mercurial-scm.org/D8368
Tue, 07 Jan 2020 11:25:13 -0500 manifest: remove a 20-byte-hash assumption from pure manifest parsing
Augie Fackler <augie@google.com> [Tue, 07 Jan 2020 11:25:13 -0500] rev 44701
manifest: remove a 20-byte-hash assumption from pure manifest parsing This is almost certainly slower, but it shouldn't be by much. We need to do this for the eventual hash transition, no matter what that looks like. Differential Revision: https://phab.mercurial-scm.org/D8367
Mon, 13 Apr 2020 12:18:29 -0400 revset: mark `extinct()` experimental
Matt Harbison <matt_harbison@yahoo.com> [Mon, 13 Apr 2020 12:18:29 -0400] rev 44700
revset: mark `extinct()` experimental Differential Revision: https://phab.mercurial-scm.org/D8407
Mon, 13 Apr 2020 12:17:52 -0400 revset: mark `successors()` experimental
Matt Harbison <matt_harbison@yahoo.com> [Mon, 13 Apr 2020 12:17:52 -0400] rev 44699
revset: mark `successors()` experimental Differential Revision: https://phab.mercurial-scm.org/D8406
Mon, 13 Apr 2020 12:13:22 -0400 revset: mark `obsolete()` experimental
Matt Harbison <matt_harbison@yahoo.com> [Mon, 13 Apr 2020 12:13:22 -0400] rev 44698
revset: mark `obsolete()` experimental I assume not marking it was unintentional, since the obsolete concept it still experimental. Differential Revision: https://phab.mercurial-scm.org/D8405
Tue, 14 Apr 2020 16:09:38 +0200 nodemap: access the mmap opener option using bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Apr 2020 16:09:38 +0200] rev 44697
nodemap: access the mmap opener option using bytes The key is bytes and need to be accessed s such. Differential Revision: https://phab.mercurial-scm.org/D8413
Tue, 14 Apr 2020 04:17:57 +0200 nodemap: rename a variable to prevent shawoding "_"
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 14 Apr 2020 04:17:57 +0200] rev 44696
nodemap: rename a variable to prevent shawoding "_" This will make pyflakes happy with the next changeset. Differential Revision: https://phab.mercurial-scm.org/D8412
Fri, 10 Apr 2020 22:30:50 +0900 rust-chg: indent process_message() to prepare mass rewrite to futures-0.3
Yuya Nishihara <yuya@tcha.org> [Fri, 10 Apr 2020 22:30:50 +0900] rev 44695
rust-chg: indent process_message() to prepare mass rewrite to futures-0.3 I'll start upgrading the codebase to modern async/await-based implementation, which cannot be done incrementally. This is the last non-breaking patch to prepare for the rewrite. Differential Revision: https://phab.mercurial-scm.org/D8403
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip