Fri, 21 Jan 2022 16:22:10 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:22:10 +0100] rev 48626
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12057
Sat, 22 Jan 2022 08:55:59 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Jan 2022 08:55:59 +0100] rev 48625
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12056
Fri, 21 Jan 2022 16:07:04 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:07:04 +0100] rev 48624
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12055
Sun, 23 Jan 2022 20:24:35 +0100 test-http-bad-server: modify some `tail` call fit their goal
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jan 2022 20:24:35 +0100] rev 48623
test-http-bad-server: modify some `tail` call fit their goal We want to check that we stop writing when we want to stop writing. Differential Revision: https://phab.mercurial-scm.org/D12054
Fri, 21 Jan 2022 16:02:47 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:02:47 +0100] rev 48622
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12053
Fri, 21 Jan 2022 16:02:26 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 16:02:26 +0100] rev 48621
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12052
Fri, 21 Jan 2022 15:52:48 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 15:52:48 +0100] rev 48620
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12051
Fri, 21 Jan 2022 15:44:15 +0100 test-http-bad-server: move on test from bytes-count to pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 15:44:15 +0100] rev 48619
test-http-bad-server: move on test from bytes-count to pattern This specific test case is now using the new "close when a pattern is seen" approach compared to the more fragile "that many bytes were sent" approach. Since such change are still a bit noisy, we split each change in there own changesets. Differential Revision: https://phab.mercurial-scm.org/D12050
Sat, 22 Jan 2022 01:51:28 +0100 test-bad-http-server: introduce sock closing when writing a pattern
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Jan 2022 01:51:28 +0100] rev 48618
test-bad-http-server: introduce sock closing when writing a pattern Instead of using a fixed number a bytes, a very unstable method. We introduce a new config that can define a regex. One this regex is detected, nothing after it will be written and the socket will be closed. Tests will be migrated to this new method in later changesets. Differential Revision: https://phab.mercurial-scm.org/D12049
Sat, 22 Jan 2022 01:13:12 +0100 test-http-bad-server: document that the value are actually a list
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 22 Jan 2022 01:13:12 +0100] rev 48617
test-http-bad-server: document that the value are actually a list I don't really expect this doc to be read a lot, but mentioning that this is a list seems important. Differential Revision: https://phab.mercurial-scm.org/D12048
Fri, 21 Jan 2022 12:44:39 +0100 test-http-bad-server: refactor the writing logic to avoid early return
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 12:44:39 +0100] rev 48616
test-http-bad-server: refactor the writing logic to avoid early return Our ultimate goal is to add another way to define the connection needs to be closed. To do so, we need the "read" code to be more unified. Differential Revision: https://phab.mercurial-scm.org/D12047
Fri, 21 Jan 2022 11:58:55 +0100 test-http-bad-server: replace the default 65537 value in output
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 11:58:55 +0100] rev 48615
test-http-bad-server: replace the default 65537 value in output This is the default block value that we use here and it make the output overall less readable. So we replace it with `~` Differential Revision: https://phab.mercurial-scm.org/D12046
Fri, 21 Jan 2022 11:15:56 +0100 test-http-bad-server: refactor the reading logic to avoid early return
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 11:15:56 +0100] rev 48614
test-http-bad-server: refactor the reading logic to avoid early return Our ultimate goal is to add another way to define the connection needs to be closed. To do so, we need the "read" code to be more unified. Differential Revision: https://phab.mercurial-scm.org/D12045
Fri, 21 Jan 2022 03:05:43 +0100 test-http-bad-server: factor code dealing with "read" in the new object
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 03:05:43 +0100] rev 48613
test-http-bad-server: factor code dealing with "read" in the new object This will make sure both `read` and `readline` do the same processing and make it simpler to update that processing in the future. Differential Revision: https://phab.mercurial-scm.org/D12044
Fri, 21 Jan 2022 00:54:15 +0100 test-http-bad-server: factor code dealing with "write" in the new object
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 00:54:15 +0100] rev 48612
test-http-bad-server: factor code dealing with "write" in the new object This will make sure both `sendall` and `write` do the same processing and make it simpler to update that processing in the future. Differential Revision: https://phab.mercurial-scm.org/D12043
Sun, 23 Jan 2022 21:25:01 +0100 test-http-bad-server: unify log printing for `sendall` and `write`
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 23 Jan 2022 21:25:01 +0100] rev 48611
test-http-bad-server: unify log printing for `sendall` and `write` The `write` function was logging before calling the function while the `sendall` function were logging after calling the function. We align the `write` behavior on the `sendall` behavior before unifying the code. Differential Revision: https://phab.mercurial-scm.org/D12042
Fri, 21 Jan 2022 01:07:50 +0100 test-http-bad-server: track close condition in an object
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 01:07:50 +0100] rev 48610
test-http-bad-server: track close condition in an object In order to make the logic more advanced, we need to unify it. To unify it, we introduce a small object that will be responsible for tracking and enforcing "premature socket close" conditions for both proxy object (socketproxy and fileobjectproxy). More logic will be moved into the object in later changesets. Differential Revision: https://phab.mercurial-scm.org/D12041
Wed, 19 Jan 2022 19:14:17 +0100 test-http-bad-server: use more readable name for variable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jan 2022 19:14:17 +0100] rev 48609
test-http-bad-server: use more readable name for variable This make the code more accessible overall. Differential Revision: https://phab.mercurial-scm.org/D12040
Fri, 21 Jan 2022 02:07:13 +0100 test-http-bad-server: align output by using `;`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 02:07:13 +0100] rev 48608
test-http-bad-server: align output by using `;` This is the only message using a `,` instead of `;` and that seems unintentional. I am unifying the message before unigying the code. Differential Revision: https://phab.mercurial-scm.org/D12039
Wed, 19 Jan 2022 19:04:55 +0100 test-http-bad-server: highlight each test with section
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jan 2022 19:04:55 +0100] rev 48607
test-http-bad-server: highlight each test with section Small "documentation" change to highlight each individual tests better. Differential Revision: https://phab.mercurial-scm.org/D12038
Fri, 21 Jan 2022 20:50:40 +0100 test-http-bad-server: rename config to use `-`
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 20:50:40 +0100] rev 48606
test-http-bad-server: rename config to use `-` This make things much more readable. Differential Revision: https://phab.mercurial-scm.org/D12037
Tue, 18 Jan 2022 21:29:43 +0100 test-http-bad-server: move the extension in `testlib`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 21:29:43 +0100] rev 48605
test-http-bad-server: move the extension in `testlib` This seems like a better location for it. Differential Revision: https://phab.mercurial-scm.org/D12036
Mon, 17 Jan 2022 19:29:41 +0100 requirements: remove the `localrepo.supportedformat` attribute
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:29:41 +0100] rev 48604
requirements: remove the `localrepo.supportedformat` attribute It is not longer used anywhere. Differential Revision: https://phab.mercurial-scm.org/D12035
Mon, 17 Jan 2022 22:48:16 +0100 requirements: sort _basesupported
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 22:48:16 +0100] rev 48603
requirements: sort _basesupported This will make the next changeset clearer. Differential Revision: https://phab.mercurial-scm.org/D12034
Mon, 17 Jan 2022 19:28:10 +0100 requirements: move the comment about manifestv2 in the module
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:28:10 +0100] rev 48602
requirements: move the comment about manifestv2 in the module This is about requirements, so lets put it into the requirements module. We are about to remove code it was previously attached too. Differential Revision: https://phab.mercurial-scm.org/D12033
Mon, 17 Jan 2022 19:26:36 +0100 stream-clone: add a explicit set list requirements relevant to stream clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:26:36 +0100] rev 48601
stream-clone: add a explicit set list requirements relevant to stream clone This set explicitly lists all the requirements that "stream clone" will preserve. Any other one will not be preserved. The role of listing the relevant one was previously filled by `repo.supportedformat`, but it seems clearer to use that such global and explicit set. The `repo.supportedformat` attribute will be cleaned up in a later changeset The true meaning of `repo.supportedformat` vs `repo._basesupported` was lost over time so, the content is currently bad. For example, `dirstate-v2` is currently considered relevant to the stream clone, or internal phase is missing. We kept the same content in this changeset and we will fix them later. Differential Revision: https://phab.mercurial-scm.org/D12032
Mon, 24 Jan 2022 11:49:06 +0100 stream-clone: filter possible missing requirements using all supported one
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 11:49:06 +0100] rev 48600
stream-clone: filter possible missing requirements using all supported one The `supportedformat` requirements is missing some important requirements and it seems better to filter out with all requirements we know, not just an "arbitrary" subset. This is especially relevant as we about to phase out the `supportedformat` class attribute. (a backport of this change to stable should be sent soon). Differential Revision: https://phab.mercurial-scm.org/D12031
Mon, 17 Jan 2022 19:18:20 +0100 requirements: move "bookmark in store" requirements in the right module
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:18:20 +0100] rev 48599
requirements: move "bookmark in store" requirements in the right module There seems to be no reasons to not have it with the others. Differential Revision: https://phab.mercurial-scm.org/D12030
Mon, 17 Jan 2022 18:51:47 +0100 stream-clone: add a explicit test for format change during stream clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 18:51:47 +0100] rev 48598
stream-clone: add a explicit test for format change during stream clone They are different kind of requirements, the one which impact the data storage and are relevant to the files being streamed and the one which does not. For example some requirements are only relevant to the working copy, like sparse, or dirstate-v2. Since they are irrelevant to the content being streamed, they do not prevent the receiving side to use streaming clone and mercurial skip adverting them over the wire and, ideally, within the bundle. In addition, this let the client decide to use whichever format it desire for the part that does not affect the store itself. So the configuration related to these format are used as normal when doing a streaming clone. In practice, the feature was not really tested and is badly broken with bundle-2, since the requirements are not filtered out from the stream bundle. So we start with adding simple tests as a good base before the fix and adjust the feature. Differential Revision: https://phab.mercurial-scm.org/D12029
Fri, 14 Jan 2022 18:02:25 +0100 stream-clone: factor computation of requirement of a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 18:02:25 +0100] rev 48597
stream-clone: factor computation of requirement of a stream clone This gather code duplicated in multiple place and will make it easier to modify it safely in the future. Differential Revision: https://phab.mercurial-scm.org/D12028
Fri, 14 Jan 2022 17:57:49 +0100 stream-clone: factor computation of new clone requirement out
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 17:57:49 +0100] rev 48596
stream-clone: factor computation of new clone requirement out This gather code duplicated in multiple place and will make it easier to modify it safely in the future. Differential Revision: https://phab.mercurial-scm.org/D12027
Tue, 18 Jan 2022 00:07:43 +0100 stream-clone: drop some outdated lines in test-stream-bundle-v2.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 00:07:43 +0100] rev 48595
stream-clone: drop some outdated lines in test-stream-bundle-v2.t These line refer to a "dirstate-v2" variant that is no longer in use. The associated line drifted out of sync with reality. Differential Revision: https://phab.mercurial-scm.org/D12026
Mon, 24 Jan 2022 08:35:14 -0800 relnotes: add note about changed labels texts
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Jan 2022 08:35:14 -0800] rev 48594
relnotes: add note about changed labels texts Differential Revision: https://phab.mercurial-scm.org/D12085
Fri, 21 Jan 2022 13:48:48 -0800 graft: attempt to make merge labels more helpful
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Jan 2022 13:48:48 -0800] rev 48593
graft: attempt to make merge labels more helpful Differential Revision: https://phab.mercurial-scm.org/D12025
Fri, 21 Jan 2022 13:49:11 -0800 shelve: attempt to make merge labels more helpful
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Jan 2022 13:49:11 -0800] rev 48592
shelve: attempt to make merge labels more helpful Differential Revision: https://phab.mercurial-scm.org/D12024
Fri, 21 Jan 2022 13:48:18 -0800 histedit: attempt to make merge labels more helpful
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Jan 2022 13:48:18 -0800] rev 48591
histedit: attempt to make merge labels more helpful Differential Revision: https://phab.mercurial-scm.org/D12023
Tue, 18 Jan 2022 13:23:49 -0800 update: set custom conflict label for base commit
Martin von Zweigbergk <martinvonz@google.com> [Tue, 18 Jan 2022 13:23:49 -0800] rev 48590
update: set custom conflict label for base commit Differential Revision: https://phab.mercurial-scm.org/D12022
Tue, 18 Jan 2022 15:04:55 -0800 merge: set custom conflict label for base commit
Martin von Zweigbergk <martinvonz@google.com> [Tue, 18 Jan 2022 15:04:55 -0800] rev 48589
merge: set custom conflict label for base commit Differential Revision: https://phab.mercurial-scm.org/D12021
Tue, 18 Jan 2022 14:57:15 -0800 rebase: set custom conflict label for base commit
Martin von Zweigbergk <martinvonz@google.com> [Tue, 18 Jan 2022 14:57:15 -0800] rev 48588
rebase: set custom conflict label for base commit Differential Revision: https://phab.mercurial-scm.org/D12020
Thu, 20 Jan 2022 11:06:52 -0800 simplemerge: take over formatting of label from `filemerge`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 11:06:52 -0800] rev 48587
simplemerge: take over formatting of label from `filemerge` The padding we do of conflict labels depends on which conflict marker style is used. For two-way conflict markers (the default), the length of the base label shouldn't matter. It does before this patch, however. This patch moves the formatting from `filemerge` to `simplemerge`. The latter knows which conflict marker style to use, so it can easily decide about the padding. This change will allow us to use more descriptive "base" labels without causing illogical padding in 2-way markers. I'll do that next. One wrinkle is that we pass the same labels to external merge tools. I decided to change that in this patch to be simpler: no padding, and no ellipsis to fit within 80 columns. My reasoning is that the typical external, 3-or-4-panel merge tool doesn't show the labels on top of each others, so the padding doesn't make sense there. The ellipsis is probably not necessary because the external tools probably have their own way of dealing with long labels. Also, we limit them to "80 - 8" to fit the "<<<<<<< " before, which is almost definitely not what an external tool would put there. Differential Revision: https://phab.mercurial-scm.org/D12019
Thu, 20 Jan 2022 16:16:05 -0800 filemerge: pass `simplemerge.MergeInput` to tool functions
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 16:16:05 -0800] rev 48586
filemerge: pass `simplemerge.MergeInput` to tool functions Differential Revision: https://phab.mercurial-scm.org/D12018
Thu, 20 Jan 2022 14:42:50 -0800 filemerge: work with `simplemerge.MergeInput` in `filemerge()`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 14:42:50 -0800] rev 48585
filemerge: work with `simplemerge.MergeInput` in `filemerge()` We currently pass around pairs of file context objects and labels between functions in the `filemerge` module. I plan to pass around `simplemerge.MergeInput` instead. This patch prepares for that by using the type internally in `filemerge.filemerge()`. Differential Revision: https://phab.mercurial-scm.org/D12017
Thu, 20 Jan 2022 14:13:12 -0800 filemerge: always define a "base" label
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 14:13:12 -0800] rev 48584
filemerge: always define a "base" label It simplifies the code and improves the conflict markers to always have the "base" label defined. Differential Revision: https://phab.mercurial-scm.org/D12016
Thu, 20 Jan 2022 13:43:43 -0800 filemerge: set default labels a little earlier
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 13:43:43 -0800] rev 48583
filemerge: set default labels a little earlier By setting the default labels a little earlier, we can rely on them always being set, as far as I can tell. It may actually even be fine to rely on that even if we don't set them earlier, but it makes more sense to me to do it. Differential Revision: https://phab.mercurial-scm.org/D12015
Tue, 18 Jan 2022 10:32:11 +0100 helptext: add missing newline to Rust helptext stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 18 Jan 2022 10:32:11 +0100] rev 48582
helptext: add missing newline to Rust helptext This makes it so the list renders properly. Differential Revision: https://phab.mercurial-scm.org/D12007
Mon, 24 Jan 2022 21:17:04 -0800 unamend: error out when running on merge commit stable
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Jan 2022 21:17:04 -0800] rev 48581
unamend: error out when running on merge commit It's better to error out than to produce a bad commit. We do that same in `hg uncommit`. I haven't looked into how much work it is to make them work instead. Differential Revision: https://phab.mercurial-scm.org/D12087
Mon, 24 Jan 2022 21:12:19 -0800 tests: demonstrate how `hg unamend` fails on merge commits stable
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Jan 2022 21:12:19 -0800] rev 48580
tests: demonstrate how `hg unamend` fails on merge commits When `hg unamend` is run on a merge commit, it seems that it loses the changes from the second parent. Differential Revision: https://phab.mercurial-scm.org/D12086
Thu, 20 Jan 2022 11:17:09 -0800 filemerge: remove unused arguments from `_merge()`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 11:17:09 -0800] rev 48579
filemerge: remove unused arguments from `_merge()` Differential Revision: https://phab.mercurial-scm.org/D12014
Thu, 20 Jan 2022 11:00:30 -0800 simplemerge: take arguments as annotated context objects
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 11:00:30 -0800] rev 48578
simplemerge: take arguments as annotated context objects The labels we put in conflict markers are formatted so the part before the ':' (typically says things like "local") is padded so the ':' is aligned among the labels. That means that if you specify a long label for "base" but the conflict marker style is "merge" (i.e. 2-way), the other two will have unwanted padding. We often don't specify a label for the base, so we don't notice the problem (and it may very well be that it didn't exist before my D11972). I think the best fix is to pass the labels along with the context objects, so the low-level code that switches on the marker style to use (i.e. `simplemerge`) can do the formatting. This patch starts doing that by passing a fully-formatted label to `simplemerge`. A coming patch will move the formatting to `simplemerge`. Differential Revision: https://phab.mercurial-scm.org/D12013
Thu, 20 Jan 2022 09:04:39 -0800 filemerge: make `labels` a required arg for `_premerge()`
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 09:04:39 -0800] rev 48577
filemerge: make `labels` a required arg for `_premerge()` We always pass labels, and it's always a non-empty list, so we can simplify a bit. Differential Revision: https://phab.mercurial-scm.org/D12012
Thu, 20 Jan 2022 14:46:16 -0800 filemerge: remove unnecessary check for empty string
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 14:46:16 -0800] rev 48576
filemerge: remove unnecessary check for empty string Looking at the statement just before, the string is clearly never empty (or otherwise falsy). Differential Revision: https://phab.mercurial-scm.org/D12011
Thu, 20 Jan 2022 23:07:35 -0800 tests: also test spaces in conflict marker labels
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jan 2022 23:07:35 -0800] rev 48575
tests: also test spaces in conflict marker labels Our fake merge tool printed the arguments using `$1` etc. without quotes, which means that the shell collapsed repeated spaces within the argument. That resulted in tests that did not pick up changes to the number of spaces. Differential Revision: https://phab.mercurial-scm.org/D12010
Mon, 17 Jan 2022 21:20:46 -0500 blackbox: change year in logs to ISO 8601 format
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 17 Jan 2022 21:20:46 -0500] rev 48574
blackbox: change year in logs to ISO 8601 format AFAIK, year/month/day is not a format than anyone uses. It seems more sensible to me to use ISO 8601, as that's standard and unambiguously year-month-day. Compatibility-wise, I think it's acceptable to change the default format. It's most for human consumption. It's plausible that a few tools parse this format, but it has already changed in the past (for instance to add the current revision). Differential Revision: https://phab.mercurial-scm.org/D12006
Mon, 17 Jan 2022 21:00:33 -0500 blackbox: add milliseconds to blackbox logs by default
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 17 Jan 2022 21:00:33 -0500] rev 48573
blackbox: add milliseconds to blackbox logs by default The current second granularity is often not specific enough to determine whether an hg command is happening before or after some other event. Given that starting a process takes on the order of 1ms (well, for native processes. It's quite a bit more for python processes), microseconds seems like unnecessary noise. This also lines up behavior with the rust version, where we already switched to millisecond precision. Differential Revision: https://phab.mercurial-scm.org/D12005
Mon, 17 Jan 2022 20:47:46 -0500 blackbox: correct date format doc
Valentin Gatien-Baron <valentin.gatienbaron@gmail.com> [Mon, 17 Jan 2022 20:47:46 -0500] rev 48572
blackbox: correct date format doc Differential Revision: https://phab.mercurial-scm.org/D12004
Thu, 20 Jan 2022 14:06:36 +0000 revlog: fix a bug where transaction can be aborted partially stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 20 Jan 2022 14:06:36 +0000] rev 48571
revlog: fix a bug where transaction can be aborted partially Fix a repo corruption bug caused by a partial transaction rollback. Differential Revision: https://phab.mercurial-scm.org/D12009
Thu, 20 Jan 2022 14:02:58 +0000 revlog: demonstrate a bug where transaction can be aborted partially stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 20 Jan 2022 14:02:58 +0000] rev 48570
revlog: demonstrate a bug where transaction can be aborted partially Differential Revision: https://phab.mercurial-scm.org/D12008
Tue, 18 Jan 2022 10:27:13 +0100 branching: merge with stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 18 Jan 2022 10:27:13 +0100] rev 48569
branching: merge with stable
Thu, 30 Dec 2021 13:25:44 +0100 rust: fix build errors on darwin stable
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 30 Dec 2021 13:25:44 +0100] rev 48568
rust: fix build errors on darwin I'm not all _that_ versed in Rust, but I think the root cause is that some constants are u16 rather than u32 on Darwin. I checked that the code still compiles on the latest Ubuntu. Differential Revision: https://phab.mercurial-scm.org/D11955
Mon, 17 Jan 2022 12:50:13 +0100 rust: Fix outdated comments in OwningDirstateMap
Simon Sapin <simon.sapin@octobus.net> [Mon, 17 Jan 2022 12:50:13 +0100] rev 48567
rust: Fix outdated comments in OwningDirstateMap OwningDirstateMap used to own a PyBytes, but was generalized to be more generic when it was moved from hg-cpython to hg-core. This fixes some comments that were still referencing PyBytes. Differential Revision: https://phab.mercurial-scm.org/D12003
Fri, 14 Jan 2022 09:28:44 -0800 merge: consider the file merged when using :merge-{local,other}
Martin von Zweigbergk <martinvonz@google.com> [Fri, 14 Jan 2022 09:28:44 -0800] rev 48566
merge: consider the file merged when using :merge-{local,other} Returning `None` from `simplemerge()` means that the caller interprets it as "no merge was necessary (because two sides matched)". See 6217040b2780 and issue2680 for some background. However, `simplemerge()` shouldn't even get called in such scenarios, and returning `None` means that the file is not considered merged, even though the contents actually were. See the affected test cases. Differential Revision: https://phab.mercurial-scm.org/D11999
Fri, 14 Jan 2022 08:44:36 -0800 simplemerge: delete unused exception class `CantReprocessAndShowBase`
Martin von Zweigbergk <martinvonz@google.com> [Fri, 14 Jan 2022 08:44:36 -0800] rev 48565
simplemerge: delete unused exception class `CantReprocessAndShowBase` The only user was removed in f18830651811 (simplemerge: burn "minimal" feature to the ground, 2014-08-05). Differential Revision: https://phab.mercurial-scm.org/D11998
Tue, 11 Jan 2022 22:13:56 -0800 simplemerge: change _minimize() to minimize a single conflict
Martin von Zweigbergk <martinvonz@google.com> [Tue, 11 Jan 2022 22:13:56 -0800] rev 48564
simplemerge: change _minimize() to minimize a single conflict `_minimize()` is weird in that it changes `a_lines` and `b_lines` but leaves `base_lines` unchanged, which means they'll be inconsistent. That was fine because the caller never used `base_lines`. With the recent refactorings of this code, we can now make this function cleaner by having it minimize a single conflict and not care about `base_lines`. This also makes the code simpler and makes the code for each `render_*()` function more similar. Differential Revision: https://phab.mercurial-scm.org/D11981
Tue, 11 Jan 2022 22:03:55 -0800 simplemerge: make minimize() a free function
Martin von Zweigbergk <martinvonz@google.com> [Tue, 11 Jan 2022 22:03:55 -0800] rev 48563
simplemerge: make minimize() a free function IMO, `Merge3Text` should be about merging text without knowing about conflict markers. "Conflict minimization" is about making conflict markers smaller, so it should be moved out. This patch does that. I'll refactor it next. Differential Revision: https://phab.mercurial-scm.org/D11980
Tue, 11 Jan 2022 21:56:27 -0800 simplemerge: simplify and rename `render_markers()`
Martin von Zweigbergk <martinvonz@google.com> [Tue, 11 Jan 2022 21:56:27 -0800] rev 48562
simplemerge: simplify and rename `render_markers()` `render_markers()` now always renders minimized 2-way markers, so let's simplify and rename it accordingly. Differential Revision: https://phab.mercurial-scm.org/D11979
Tue, 11 Jan 2022 16:23:10 -0800 simplemerge: split out function for rendering :merge3 conflict markers
Martin von Zweigbergk <martinvonz@google.com> [Tue, 11 Jan 2022 16:23:10 -0800] rev 48561
simplemerge: split out function for rendering :merge3 conflict markers The results in some duplicate, but the code is very straight-forward and I think it's worth it to have each conflict marker style in a separate function. Differential Revision: https://phab.mercurial-scm.org/D11978
Fri, 07 Jan 2022 23:29:19 -0800 simplemerge: move default labels to simplemerge extension
Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Jan 2022 23:29:19 -0800] rev 48560
simplemerge: move default labels to simplemerge extension I want to remove knowledge of paths from the `simplemerge` core module. As part of that, let's move the default labels from the core module to the extension. Differential Revision: https://phab.mercurial-scm.org/D11977
Fri, 07 Jan 2022 22:23:44 -0800 simplemerge: use same newline detection for :mergediff as for :merge[3]
Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Jan 2022 22:23:44 -0800] rev 48559
simplemerge: use same newline detection for :mergediff as for :merge[3] The `:merge` and `:merge3` markers used the newline style detected from the base input. The `:mergediff` style always used LF as newline character. This patch teaches `:mergediff` to use the same detection as the others did. Differential Revision: https://phab.mercurial-scm.org/D11976
Tue, 11 Jan 2022 16:54:42 -0800 simplemerge: clarify names of functions that render conflict markers
Martin von Zweigbergk <martinvonz@google.com> [Tue, 11 Jan 2022 16:54:42 -0800] rev 48558
simplemerge: clarify names of functions that render conflict markers Differential Revision: https://phab.mercurial-scm.org/D11975
Fri, 07 Jan 2022 22:16:22 -0800 simplemerge: make merge_lines() a free function
Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Jan 2022 22:16:22 -0800] rev 48557
simplemerge: make merge_lines() a free function IMO, the rendering of a conflict as text with merge markers should be separate from the code for resolving conflicts. The latter is what `Merge3Text` is mostly about already. Differential Revision: https://phab.mercurial-scm.org/D11974
Fri, 07 Jan 2022 18:42:31 -0800 simplemerge: convert `merge_lines()` away from generator
Martin von Zweigbergk <martinvonz@google.com> [Fri, 07 Jan 2022 18:42:31 -0800] rev 48556
simplemerge: convert `merge_lines()` away from generator We always consume all the lines and put them in a list anyway. By making the function not a generator, we can later make it return an additional value (to indicate if there were conflicts). Differential Revision: https://phab.mercurial-scm.org/D11973
Tue, 14 Dec 2021 13:12:56 -0800 simplemerge: use 3-way markers if mode=='merge3', ignoring number of labels
Martin von Zweigbergk <martinvonz@google.com> [Tue, 14 Dec 2021 13:12:56 -0800] rev 48555
simplemerge: use 3-way markers if mode=='merge3', ignoring number of labels Before this patch, we use a combination of `mode` and `labels` to decide which marker style to use. That's mostly my own fault because I was the one who added the `mergediff` as a "mode" instead of adding a separate argument for marker style. Still, let's make these arguments more orthogonal by ignoring the number of labels when deciding which marker style to use. This refactoring makes it a little clearer in the simplemerge *extension* that passing more than 2 `--label` arguments changes the marker style. Differential Revision: https://phab.mercurial-scm.org/D11972
Fri, 14 Jan 2022 10:25:45 -0800 rust: upgrade `rand*` crates
Martin von Zweigbergk <martinvonz@google.com> [Fri, 14 Jan 2022 10:25:45 -0800] rev 48554
rust: upgrade `rand*` crates `test-check-cargo-lock.t` is failing for me and I was hoping this would help. It doesn't, but we might as well take the upgrade now that I've done the (small amount of) work for it. Differential Revision: https://phab.mercurial-scm.org/D12000
Thu, 06 Jan 2022 22:09:40 -0800 logcmdutil: raise `StateError` when file to follow doesn't exist
Martin von Zweigbergk <martinvonz@google.com> [Thu, 06 Jan 2022 22:09:40 -0800] rev 48553
logcmdutil: raise `StateError` when file to follow doesn't exist Differential Revision: https://phab.mercurial-scm.org/D11969
Thu, 06 Jan 2022 22:03:21 -0800 logcmdutil: raise `InputError` on bad CLI arguments
Martin von Zweigbergk <martinvonz@google.com> [Thu, 06 Jan 2022 22:03:21 -0800] rev 48552
logcmdutil: raise `InputError` on bad CLI arguments Apparently there were no tests for any of these errors. Differential Revision: https://phab.mercurial-scm.org/D11968
Mon, 10 Jan 2022 18:04:41 -0500 subrepo: make -S work again on Windows for incoming/outgoing to remote repos stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 10 Jan 2022 18:04:41 -0500] rev 48551
subrepo: make -S work again on Windows for incoming/outgoing to remote repos While it worked fine for the top level repo, the remote path for the subrepo got mangled to something like "https://server/prefix\repo\subrepo", which I've seen result in both a 400 and a 404, depending on the server. We need to `normpath` at least the `subpath` because of "http://user:***@localhost:$HGPORT/main/../sub" in `test-subrepo-relative-path.t`. Keep the `os.path` flavor for handling filesystem based remote repos, since this string is also displayed. This is one case where the automatic substitution of '\' for '/' and rematching done by the test runner is unfortunate- I don't see how to write a test to catch this. Differential Revision: https://phab.mercurial-scm.org/D11971
Sun, 09 Jan 2022 13:35:30 +0100 tests: support pygments 2.11 (issue6628)
Cédric Krier <ced@b2ck.com> [Sun, 09 Jan 2022 13:35:30 +0100] rev 48550
tests: support pygments 2.11 (issue6628) Differential Revision: https://phab.mercurial-scm.org/D11970
Mon, 03 Jan 2022 01:09:56 +0100 exchange: add fast path for subrepo check on push
Joerg Sonnenberger <joerg@bec.de> [Mon, 03 Jan 2022 01:09:56 +0100] rev 48549
exchange: add fast path for subrepo check on push Try to check if .hgsub and .hgsubstate exist at all before looking for them in every changeset to be pushed. The latter can be quite expensive for large repositories and the existance check is almost free. Differential Revision: https://phab.mercurial-scm.org/D11956
Wed, 05 Jan 2022 11:34:54 -0800 simplemerge: rewrite `merge_lines()` using `merge_groups()`
Martin von Zweigbergk <martinvonz@google.com> [Wed, 05 Jan 2022 11:34:54 -0800] rev 48548
simplemerge: rewrite `merge_lines()` using `merge_groups()` Simple is better. Differential Revision: https://phab.mercurial-scm.org/D11967
Thu, 06 Jan 2022 09:03:17 -0800 simplemerge: make merge_groups() yield only 2-tuples
Martin von Zweigbergk <martinvonz@google.com> [Thu, 06 Jan 2022 09:03:17 -0800] rev 48547
simplemerge: make merge_groups() yield only 2-tuples `merge_groups()` currently yields 2-tuples or 4-tuples, making the callers check the first element to decide how to interpret the rest. Let's make it yield only 2-tuples, thereby simplifying life a little for the callers. Differential Revision: https://phab.mercurial-scm.org/D11966
Fri, 07 Jan 2022 14:40:21 +0100 rhg: desambiguate status without decompressing filelog if possible
Simon Sapin <simon.sapin@octobus.net> [Fri, 07 Jan 2022 14:40:21 +0100] rev 48546
rhg: desambiguate status without decompressing filelog if possible When status is unsure based on `stat()` and the dirstate if a file is clean or modified, we need to compare it against the filelog. This comparison can skip looking at contents if the lengths differ. This changeset optimize this further to deduce what we can about the length if the filelog without decompressing it or resolving deltas. Differential Revision: https://phab.mercurial-scm.org/D11965
Thu, 06 Jan 2022 12:46:10 +0100 filelog: add a comment explaining a fast path in filerevisioncopied()
Simon Sapin <simon.sapin@octobus.net> [Thu, 06 Jan 2022 12:46:10 +0100] rev 48545
filelog: add a comment explaining a fast path in filerevisioncopied() Differential Revision: https://phab.mercurial-scm.org/D11964
Tue, 21 Dec 2021 21:26:14 +0100 rhg: Store p1, p2, and hash in RevlogEntry
Simon Sapin <simon.sapin@octobus.net> [Tue, 21 Dec 2021 21:26:14 +0100] rev 48544
rhg: Store p1, p2, and hash in RevlogEntry This avoids a duplicate index lookup Differential Revision: https://phab.mercurial-scm.org/D11963
Tue, 21 Dec 2021 21:23:46 +0100 rhg: RevlogEntry::uncompressed_len is signed
Simon Sapin <simon.sapin@octobus.net> [Tue, 21 Dec 2021 21:23:46 +0100] rev 48543
rhg: RevlogEntry::uncompressed_len is signed The corresponding Python code appears to explicitly check for non-negative values. Differential Revision: https://phab.mercurial-scm.org/D11962
Tue, 21 Dec 2021 18:50:44 +0100 rhg: Expose FilelogEntry that wraps RevlogEntry
Simon Sapin <simon.sapin@octobus.net> [Tue, 21 Dec 2021 18:50:44 +0100] rev 48542
rhg: Expose FilelogEntry that wraps RevlogEntry This can be later extended to access metadata such as `uncompressed_len` without necessarily resolving deltas. Differential Revision: https://phab.mercurial-scm.org/D11961
Tue, 21 Dec 2021 18:35:58 +0100 rhg: Add RevlogEntry::data that does delta resolution
Simon Sapin <simon.sapin@octobus.net> [Tue, 21 Dec 2021 18:35:58 +0100] rev 48541
rhg: Add RevlogEntry::data that does delta resolution This requires keeping a `&Revlog` reference inside the `RevlogEntry` struct. This struct already had the appropriate lifetime parameter. Differential Revision: https://phab.mercurial-scm.org/D11960
Tue, 21 Dec 2021 15:57:30 +0100 rhg: Rename some revlog-related types and methods
Simon Sapin <simon.sapin@octobus.net> [Tue, 21 Dec 2021 15:57:30 +0100] rev 48540
rhg: Rename some revlog-related types and methods Use "data chunck" and "data" for a revlog entry’s data before and after resolving deltas (if any), repsectively. The former `FilelogEntry` actually only contains data, rename it to `FilelogRevisionData` accordingly. This leaves room to later have a `FilelogEntry` type that wraps `RevlogEntry`. Differential Revision: https://phab.mercurial-scm.org/D11959
Wed, 05 Jan 2022 13:36:05 -0500 git: add opener attribute to gitstore
Augie Fackler <augie@google.com> [Wed, 05 Jan 2022 13:36:05 -0500] rev 48539
git: add opener attribute to gitstore Differential Revision: https://phab.mercurial-scm.org/D11958
Thu, 06 Jan 2022 09:55:28 +0100 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jan 2022 09:55:28 +0100] rev 48538
branching: merge stable into default
Wed, 05 Jan 2022 17:53:57 +0100 Added signature for changeset 799fdf4cca80 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 05 Jan 2022 17:53:57 +0100] rev 48537
Added signature for changeset 799fdf4cca80
Wed, 05 Jan 2022 17:53:03 +0100 Added tag 6.0.1 for changeset 799fdf4cca80 stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 05 Jan 2022 17:53:03 +0100] rev 48536
Added tag 6.0.1 for changeset 799fdf4cca80
Fri, 26 Nov 2021 14:29:05 +0100 docs: update Rust readme with a mention of `rhg` stable 6.0.1
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 14:29:05 +0100] rev 48535
docs: update Rust readme with a mention of `rhg` Differential Revision: https://phab.mercurial-scm.org/D11811
Fri, 26 Nov 2021 12:21:03 +0100 docs: fix typos and wording for the persistent-nodemap feature stable
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 12:21:03 +0100] rev 48534
docs: fix typos and wording for the persistent-nodemap feature Differential Revision: https://phab.mercurial-scm.org/D11810
Fri, 26 Nov 2021 12:17:51 +0100 docs: add missing dirstate-v2 documentation stable
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 12:17:51 +0100] rev 48533
docs: add missing dirstate-v2 documentation A user trying out the dirstate-v2 feature without the Rust extensions is currently faced with an error message suggesting this help section, which does not exist. Differential Revision: https://phab.mercurial-scm.org/D11809
Fri, 26 Nov 2021 14:28:27 +0100 docs: add documentation about Rust stable
Raphaël Gomès <rgomes@octobus.net> [Fri, 26 Nov 2021 14:28:27 +0100] rev 48532
docs: add documentation about Rust This makes the features more discoverable for users. Differential Revision: https://phab.mercurial-scm.org/D11808
Thu, 23 Dec 2021 14:49:28 +0100 dirstate: remove deprecated API
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Dec 2021 14:49:28 +0100] rev 48531
dirstate: remove deprecated API Differential Revision: https://phab.mercurial-scm.org/D11953
Thu, 23 Dec 2021 14:49:05 +0100 discovery: remove deprecated API
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Dec 2021 14:49:05 +0100] rev 48530
discovery: remove deprecated API Differential Revision: https://phab.mercurial-scm.org/D11952
Thu, 23 Dec 2021 14:48:31 +0100 revlog: remove deprecated APIs
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Dec 2021 14:48:31 +0100] rev 48529
revlog: remove deprecated APIs Differential Revision: https://phab.mercurial-scm.org/D11951
Thu, 23 Dec 2021 14:47:52 +0100 urls: remove deprecated APIs
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Dec 2021 14:47:52 +0100] rev 48528
urls: remove deprecated APIs Differential Revision: https://phab.mercurial-scm.org/D11950
Thu, 23 Dec 2021 14:47:33 +0100 remotefilelog: remove deprecated API
Raphaël Gomès <rgomes@octobus.net> [Thu, 23 Dec 2021 14:47:33 +0100] rev 48527
remotefilelog: remove deprecated API Differential Revision: https://phab.mercurial-scm.org/D11949
Tue, 07 Dec 2021 16:44:22 +0100 exchangev2: remove it
Raphaël Gomès <rgomes@octobus.net> [Tue, 07 Dec 2021 16:44:22 +0100] rev 48526
exchangev2: remove it As discussed on the mailing list, this is incomplete and unused with little hope of revival. Differential Revision: https://phab.mercurial-scm.org/D11954
Thu, 30 Dec 2021 13:25:44 +0100 rust: fix build errors on darwin
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 30 Dec 2021 13:25:44 +0100] rev 48525
rust: fix build errors on darwin I'm not all _that_ versed in Rust, but I think the root cause is that some constants are u16 rather than u32 on Darwin. I checked that the code still compiles on the latest Ubuntu. Differential Revision: https://phab.mercurial-scm.org/D11955
Tue, 04 Jan 2022 14:21:22 -0500 merge: with stable
Augie Fackler <augie@google.com> [Tue, 04 Jan 2022 14:21:22 -0500] rev 48524
merge: with stable
Fri, 15 Feb 2019 17:20:32 -0500 help: properly document the default pattern
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Fri, 15 Feb 2019 17:20:32 -0500] rev 48523
help: properly document the default pattern The default isn't to glob. It's relpath, which does no globbing at all. Thus most commands and options like -X/-I and hg files require `glob:` in front of them to actually do any globbing. I think long ago the default was to glob, but that hasn't been true for a long time.
Mon, 03 Jan 2022 10:43:17 +0100 heptapod-ci: make Windows jobs manual again stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 03 Jan 2022 10:43:17 +0100] rev 48522
heptapod-ci: make Windows jobs manual again The dance continues, we make the Windows tests optional once again since we don't have Windows runners available anymore. We're working on getting new ones in a more stable fashion, hopefully soon. Differential Revision: https://phab.mercurial-scm.org/D11957
Wed, 25 Aug 2021 17:14:47 +0200 tests: allow for variation in zstd output as seen on s390x and powerpc stable
Julien Cristau <jcristau@debian.org> [Wed, 25 Aug 2021 17:14:47 +0200] rev 48521
tests: allow for variation in zstd output as seen on s390x and powerpc
Fri, 10 Dec 2021 16:25:02 +0100 hg-core: dedup LazyAncestors Iterator impl
pacien <pacien.trangirard@pacien.net> [Fri, 10 Dec 2021 16:25:02 +0100] rev 48520
hg-core: dedup LazyAncestors Iterator impl … Which has been moved to the vcsgraph crate. AncestorsIterator cannot yet be removed because it is still being used in hg-core. Differential Revision: https://phab.mercurial-scm.org/D11948
Tue, 16 Nov 2021 18:54:05 +0100 hg-cpython: use ancestor iterator impls from vcsgraph
pacien <pacien.trangirard@pacien.net> [Tue, 16 Nov 2021 18:54:05 +0100] rev 48519
hg-cpython: use ancestor iterator impls from vcsgraph Differential Revision: https://phab.mercurial-scm.org/D11947
Fri, 10 Dec 2021 15:27:22 +0100 hg-cpython: implement vcsgraph::Graph for our Index
pacien <pacien.trangirard@pacien.net> [Fri, 10 Dec 2021 15:27:22 +0100] rev 48518
hg-cpython: implement vcsgraph::Graph for our Index Differential Revision: https://phab.mercurial-scm.org/D11946
Fri, 10 Dec 2021 15:22:24 +0100 rust: add vcsgraph crate as dependency
pacien <pacien.trangirard@pacien.net> [Fri, 10 Dec 2021 15:22:24 +0100] rev 48517
rust: add vcsgraph crate as dependency Preparing the integration of the vcsgraph library, which will provide generic algorithms for computations on version control graphs. Differential Revision: https://phab.mercurial-scm.org/D11945
Tue, 07 Dec 2021 23:01:20 -0800 simplemerge: don't calculate conflict labels when resolving automatically
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Dec 2021 23:01:20 -0800] rev 48516
simplemerge: don't calculate conflict labels when resolving automatically Differential Revision: https://phab.mercurial-scm.org/D11903
Tue, 07 Dec 2021 22:45:31 -0800 simplemerge: remove now-unused `localorother` argument from `merge_lines()`
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Dec 2021 22:45:31 -0800] rev 48515
simplemerge: remove now-unused `localorother` argument from `merge_lines()` Differential Revision: https://phab.mercurial-scm.org/D11902
Tue, 07 Dec 2021 22:33:18 -0800 simplemerge: add a specialized function for "union", "local", "other"
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Dec 2021 22:33:18 -0800] rev 48514
simplemerge: add a specialized function for "union", "local", "other" Differential Revision: https://phab.mercurial-scm.org/D11901
Sat, 18 Dec 2021 11:47:03 +0100 rhg: Fall back to Python if verbose status is requested by config
Simon Sapin <simon.sapin@octobus.net> [Sat, 18 Dec 2021 11:47:03 +0100] rev 48513
rhg: Fall back to Python if verbose status is requested by config Differential Revision: https://phab.mercurial-scm.org/D11943
Fri, 17 Dec 2021 17:56:13 +0100 rhg: Accept different "invalid ignore pattern" error message formatting
Simon Sapin <simon.sapin@octobus.net> [Fri, 17 Dec 2021 17:56:13 +0100] rev 48512
rhg: Accept different "invalid ignore pattern" error message formatting At the moment rhg compiles all patterns into a single big regular expression, so it’s not practical to find out which file the invalid bit of syntax came from. Differential Revision: https://phab.mercurial-scm.org/D11942
Fri, 17 Dec 2021 16:54:22 +0100 rhg: Properly format warnings related to ignore patterns
Simon Sapin <simon.sapin@octobus.net> [Fri, 17 Dec 2021 16:54:22 +0100] rev 48511
rhg: Properly format warnings related to ignore patterns Differential Revision: https://phab.mercurial-scm.org/D11941
Tue, 09 Nov 2021 18:17:52 +0100 rhg: Sub-repositories are not supported
Simon Sapin <simon.sapin@octobus.net> [Tue, 09 Nov 2021 18:17:52 +0100] rev 48510
rhg: Sub-repositories are not supported Differential Revision: https://phab.mercurial-scm.org/D11940
Tue, 07 Dec 2021 17:48:50 -0800 simplemerge: make `localorother` a "mode" instead of a separate thing
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Dec 2021 17:48:50 -0800] rev 48509
simplemerge: make `localorother` a "mode" instead of a separate thing `simplemerge()` takes a `mode` argument, which can be "union", "merge" or "mergediff", and a `localorother` argument, which can be `None`, "local", or "other". The two options are not at all orthogonal -- most combinations don't make sense. Also, at least "union", "local", and "other" are very closely related. Therefore, it makes sense to combine them into one. It probably makes sense to split the `mode` argument into `resolve` and `marker_style`, where the former can be `None`, "union", "local", or "other", and the latter can be "merge", "merge3", "mergediff", or "minimize". This is a good step in that direction whether or not we end up doing that. Differential Revision: https://phab.mercurial-scm.org/D11887
Tue, 07 Dec 2021 14:11:58 -0800 simplemerge: avoid a call to `pycompat.strkwargs()`
Martin von Zweigbergk <martinvonz@google.com> [Tue, 07 Dec 2021 14:11:58 -0800] rev 48508
simplemerge: avoid a call to `pycompat.strkwargs()` Differential Revision: https://phab.mercurial-scm.org/D11886
Mon, 06 Dec 2021 23:17:43 -0800 simplemerge: stop merging file flags
Martin von Zweigbergk <martinvonz@google.com> [Mon, 06 Dec 2021 23:17:43 -0800] rev 48507
simplemerge: stop merging file flags As 384df4db6520 (merge: merge file flags together with file content, 2013-01-09) explains, we shouldn't do a 3-way merge of the symlink. However, since 84614212ae39 (flags: actually merge flags in simplemerge, 2020-05-16), we do that in `simplemerge.simplemerge()`. What's more, the merging of the executable flag there isn't actually necessary; it was made a no-op by the very next commit, i.e. 4234c9af515d (flags: read flag from dirstate/disk for workingcopyctx (issue5743), 2020-05-16). I found the overall flag-merging code (not the bit in `simplemerge.py`) very hard to follow, but I think I now finally understand how it works. `mergestate.resolve()` calculates the merged file flags and sets them on the local side of the merge (confusingly by calling `_restore_backup()`). Then it calls `filemerge.filemerge()`, which in turn calls `simplemerge.simplemerge()` (if premerge is enabled). That means that the flags on the local side `fcs.flags()` are already correct when the flag-merging code in `simplemerge.simplemerge()` runs. Interestingly, that code still works when the local side already has the merged value, it just doesn't change the value. Here's a truth table to explain why: ``` BLOMCAR 0000000 0011111 0101011 0111111 1000000 1010000 1100000 1111101 ``` B: Base L: Local O: Other M: Merged flags from `mergestate.resolve()`, i.e. what's called "local" when we get to `simplemerge.simplemerge()` C: `commonflags` in `simplemerge.simplemerge()`, i.e. `M & O` A: `addedflags` in `simplemerge.simplemerge()`, i.e. `(M ^ O) - B` R: Re-merged flags `simplemerge.simplemerge()`, i.e. `C | A` As you can see, the re-merged flags are always unchanged compared to the initial merged flags (R equals M). Therefore, this patch effectively backs out 84614212ae39. (I might later refactor this code to have the flags explicitly passed in.) `simplemerge.simplemerge()` is also called from `contrib/simplemerge.py`, but that code never passes any flags. Differential Revision: https://phab.mercurial-scm.org/D11879
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 tip