mercurial-devel merge requestshttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests2023-08-09T15:58:20Zhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/650Draft: windows: use Mercurial encode/decode methods when reading a link2023-08-09T15:58:20ZMatt HarbisonDraft: windows: use Mercurial encode/decode methods when reading a link<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/605Draft: dispatch: ignore RequirementError when starting command server (issue6...2023-07-11T12:38:22ZArun KulshreshthaDraft: dispatch: ignore RequirementError when starting command server (issue6606)Per [issue 6606](https://bz.mercurial-scm.org/show_bug.cgi?id=6606), attempting to start a new command server fails when the `hg serve` command is run from within a repo with unknown requirements.
The issue is that `hg serve` is define...Per [issue 6606](https://bz.mercurial-scm.org/show_bug.cgi?id=6606), attempting to start a new command server fails when the `hg serve` command is run from within a repo with unknown requirements.
The issue is that `hg serve` is defined with `optionalrepo=True` because the command has been overloaded to serve two purposes: to serve the contents of a repo via an HTTP server, or to start a chg command server daemon to run arbitrary hg commands. In the latter case, the repo (if any) loaded when the server starts up is ignored entirely, and instead repos are loaded as needed by incoming requests (or not at all in the case of norepo commands). For this reason, it seems like `hg serve` should act like a `norepo` command when used to start a command server.
Since loading the repo initially happens in `dispatch.py` during startup, I ended up using a fairly crude heuristic to determine whether to ignore the `RequirementError`. I'm not sure if there's a better way of doing this, so suggestions are welcome.https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/578Draft: streamclone: speed up consumev2 by parallellizing write-to-disk2023-08-23T15:04:03ZMathias De MareDraft: streamclone: speed up consumev2 by parallellizing write-to-disk<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/576Draft: first iteration of a v3 protocol2023-06-19T08:54:49ZPierre-Yves DavidDraft: first iteration of a v3 protocolThis is an updated version of !504 with many of the side-change already integrated in another form.
Here is a small list of things I feel like need work right now (some in this MR, some later, take it a small brain dump)
* The revlog s...This is an updated version of !504 with many of the side-change already integrated in another form.
Here is a small list of things I feel like need work right now (some in this MR, some later, take it a small brain dump)
* The revlog special case could be more standard. Right now we have a special function doing it own opening and returning filename and size. We could reuse some of the "open revlog from StoreEntry code" that we use elsewhere (e.g. upgrade) to reduce the amount of special code around this. It would also seem simpler and safer is that logic returned open file point, or chunk iterator for the data, so skip the need to open the file and the small associated race window. (I also plan to poke a bit at the performance aspect of that step too)
* We should have a test for the race condition that motivate this whole work : having a revlog being split while streaming
* We should look into upgrading the format to make it possible for concurrent reading and writing of the streamed file. A MR like !578 have very promising number so we should make such evolution simple for v3.
I am planning to do the work, but we can probably share the effort with @aalekseyev and @mathias.de_mare.I foresee @aalekseyev and I discussing the remaining bits next week.
Landing the first part (pre-revlog special case) early is probably a good option here.Pierre-Yves DavidPierre-Yves Davidhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/565Draft: exchange: trivial simplification2023-05-17T09:48:22ZFelipe ContrerasDraft: exchange: trivial simplificationThis is a trivial improvement I spotted while reading `_pushchangeset`.This is a trivial improvement I spotted while reading `_pushchangeset`.https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/538Draft: Create nodemap fixes for help and running tests2023-06-19T22:00:24ZMathias De MareDraft: Create nodemap fixes for help and running tests<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/422Draft: bundle all phases (issue6794)2023-02-23T20:25:41ZJason R. CoombsDraft: bundle all phases (issue6794)https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/398Draft: schemes: allow multiple handlers2023-02-24T16:43:14ZDan Villiom Podlaski Christiansendanchr@gmail.comDraft: schemes: allow multiple handlers<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->
Related to https://foss.heptapod.net/mercurial/hg-git/-/issues/398Dan Villiom Podlaski Christiansendanchr@gmail.comDan Villiom Podlaski Christiansendanchr@gmail.comhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/360Draft: extdiff: don't run gui programs when in a cli-only environment2023-10-10T06:14:56ZLudovic ChabantDraft: extdiff: don't run gui programs when in a cli-only environmentWhen some machine is both available as a desktop interface and as SSH, you might have some local config that uses a GUI diff/merge tool. If mercurial tries to invoke it in an SSH session, it can result in weird errors or session freezes....When some machine is both available as a desktop interface and as SSH, you might have some local config that uses a GUI diff/merge tool. If mercurial tries to invoke it in an SSH session, it can result in weird errors or session freezes. The same problem can happen if reusing the same config across machines that could incorrectly bring GUI tools into a SSH-only server. Anyway, this change displays an error message instead of trying to spawn a GUI tool in a terminal-only session.
This can be bypassed by specifying `--config mergetool.foo.gui=False` in the invocation.Ludovic ChabantLudovic Chabanthttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/358Draft: boot: Theme based on Bootstrap2022-12-17T14:01:56ZKim AlvefurDraft: boot: Theme based on BootstrapThis is an attempt to clean up the theme developed for https://hg.prosody.im/ and contribute it upstream. The branding and and Prosody-specific links have been stripped.
It uses the Bootstrap 3 CSS framework (not included), which is ha...This is an attempt to clean up the theme developed for https://hg.prosody.im/ and contribute it upstream. The branding and and Prosody-specific links have been stripped.
It uses the Bootstrap 3 CSS framework (not included), which is handy if you want it to follow the branding and style of rest of your Bootstrap 3 based site. Bootstrap 3 was available as a package in Debian, which made it easy for us to deploy and use.
The templates are based on the existing paper theme, except for the index page which comes from monoblue.
![image](/uploads/d384a7cb6487c9f2e2b6e5af4f527807/image.png)https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/354Draft: doc: generate separate commands/topics/extension pages2023-10-10T06:10:41ZLudovic ChabantDraft: doc: generate separate commands/topics/extension pages<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->Ludovic ChabantLudovic Chabanthttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/350RFC: demonstrate a cryptic client error message on server hook failure2022-12-10T00:18:53ZMatt HarbisonRFC: demonstrate a cryptic client error message on server hook failure<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant informatio...<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/343RFC: fixes for pyoxidizer using in-memory resources on macOS2023-01-04T02:51:38ZMatt HarbisonRFC: fixes for pyoxidizer using in-memory resources on macOSSome of these things can be peeled off and kept on stable. Maybe the test changes should go on default, though I thought at one point test changes were OK for stable. This doesn't yet touch the actual building of the installer, which I...Some of these things can be peeled off and kept on stable. Maybe the test changes should go on default, though I thought at one point test changes were OK for stable. This doesn't yet touch the actual building of the installer, which I was intending to put on stable because we effectively don't have one now for a modern macOS [1] (though PyPI installs seem to work fine). I'm wondering if we should just change the pyoxidizer config on mac to use the filesystem, like Windows. That might be too aggressive for stable (not sure if google uses this config).
Mostly I'm wondering if there's a way to fix the various help text problems, and also why i18n doesn't seem to apply (see the last 2 commits that show the remaining failures and also show the test changes made by an earlier commit in the stack). I'm not sure about the i18n stuff, but TortoiseHg also packs the help text into `hgext.__index__`, so any fixes might help there too.
[1] https://bz.mercurial-scm.org/show_bug.cgi?id=6668
<!--
Welcome to the Mercurial Merge Request creation process:
* Set a simple title for your MR,
* All important information should be contained in your changesets' content or description,
* You can add some workflow-relevant information here (eg: when this depends on another MR),
* If your changes are not ready for review yet, click `Start the title with Draft:` under the title.
More details here:
* https://www.mercurial-scm.org/wiki/ContributingChanges
* https://www.mercurial-scm.org/wiki/Heptapod
-->https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/296Draft: improvement to "incremental missing ancestors"2022-11-09T04:52:43ZPierre-Yves DavidDraft: improvement to "incremental missing ancestors"We needs some efficient ancestors testing to help the bundling process.We needs some efficient ancestors testing to help the bundling process.Pierre-Yves DavidPierre-Yves Davidhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/270Draft: #6745 feature - VFS failure on OS-impossible names now just drop file ...2023-06-19T22:00:23ZAnton ShestakovDraft: #6745 feature - VFS failure on OS-impossible names now just drop file of...#6745 feature - VFS failure on OS-impossible names now just drop file of conflict. That file missed in WC, and status show it as deleted.
* linux users sometime commits files with strange names `?`, `:` - that makes windows insane. With...#6745 feature - VFS failure on OS-impossible names now just drop file of conflict. That file missed in WC, and status show it as deleted.
* linux users sometime commits files with strange names `?`, `:` - that makes windows insane. With this patch, this revision can checkout, ignoring strange files.https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/256Draft: hgignore-crash2022-10-19T01:38:31ZPierre-Yves DavidDraft: hgignore-crashWe can get bad crash from bad ignore.We can get bad crash from bad ignore.Pierre-Yves DavidPierre-Yves Davidhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/242Draft: ci : cache rust compilation2022-09-22T17:31:19ZPierre-Yves DavidDraft: ci : cache rust compilationPierre-Yves DavidPierre-Yves Davidhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/239Draft: sharding experiment2023-06-19T22:00:21ZPierre-Yves DavidDraft: sharding experimentIt will help to spread the testing load across more CI runners.It will help to spread the testing load across more CI runners.Pierre-Yves DavidPierre-Yves Davidhttps://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/235auditlog: initial version [WIP]2023-05-25T17:48:38ZJörg Sonnenbergerauditlog: initial version [WIP]The auditlog extension is supposed to be a replacement for Mozilla's pushlog. It doesn't require sqlite3 and uses a revlog for storage.
- [x] testing SSH / TLS pki recording
- [x] better output; templating support
- [ ] refactor strip l...The auditlog extension is supposed to be a replacement for Mozilla's pushlog. It doesn't require sqlite3 and uses a revlog for storage.
- [x] testing SSH / TLS pki recording
- [x] better output; templating support
- [ ] refactor strip logic and provide something that can be used for other places doing revlog rewriting.https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/171CARGO_BUILD_TARGET in setup.py2022-06-21T07:15:37ZPierre AugierCARGO_BUILD_TARGET in setup.pyThe rust package in conda-forge uses `CARGO_BUILD_TARGET` (https://doc.rust-lang.org/cargo/reference/environment-variables.html). I had to patch Mercurial's setup.py to use Rust for the conda-forge package (https://github.com/conda-forge...The rust package in conda-forge uses `CARGO_BUILD_TARGET` (https://doc.rust-lang.org/cargo/reference/environment-variables.html). I had to patch Mercurial's setup.py to use Rust for the conda-forge package (https://github.com/conda-forge/mercurial-feedstock/pull/59/files#diff-d7075654874cb08007a21aaab3ecd4b3453a9087e7505d034d548b8938b599bcR6).
I propose a change that would avoid this patch. I tried to have the smallest change possible to have the right path with and without `CARGO_BUILD_TARGET`. Note that without `CARGO_BUILD_TARGET`, this gives:
```
In [2]: os.path.join(
...: 'rust', 'target', os.environ.get('CARGO_BUILD_TARGET', ''), 'release'
...: )
Out[2]: 'rust/target/release'
```Mercurial ReviewMercurial Review