Mon, 14 Dec 2020 12:08:16 +0100 copies-tests: add a summary of all cases created in test-copies-chain-merge.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 12:08:16 +0100] rev 46185
copies-tests: add a summary of all cases created in test-copies-chain-merge.t This helps to keep track of existing branch when adding new cases. Differential Revision: https://phab.mercurial-scm.org/D9588
Tue, 15 Dec 2020 00:29:29 +0100 copies: stop attempt to avoid extra dict copies around branching
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 15 Dec 2020 00:29:29 +0100] rev 46184
copies: stop attempt to avoid extra dict copies around branching In the python code, we attempt to avoid unnecessary dict copies when gathering copy information. However that logic is wobbly and I keep running into case where independent branches affects each others. With the current code we can't ensure we are the only "user" of dict when dealing with merge. This caused havoc in the next series on tests I am about to introduce. So for now I am disabling the faulty optimisation. I believe we will need a dedicated overlay to deal with the "copy on write logic" to have something correct. I am also hoping to find time to build dedicated test case for this category of problem instead of relying on side effect in other tests. However for now I am focussing on another issue. Differential Revision: https://phab.mercurial-scm.org/D9608
Mon, 14 Dec 2020 02:03:36 +0100 copies: deal with the "same revision" special case earlier
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 02:03:36 +0100] rev 46183
copies: deal with the "same revision" special case earlier This can happens a lot in case of deletion so we better deal with it early. Differential Revision: https://phab.mercurial-scm.org/D9592
Sun, 20 Dec 2020 15:47:02 +0100 tags: describe all abnormal tag types in `hg tags -v`
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Sun, 20 Dec 2020 15:47:02 +0100] rev 46182
tags: describe all abnormal tag types in `hg tags -v` In particular, this affects `git` and `git-remote` tags when using hg-git. Test Plan: I have not included an explicit test, as this is much more easily tested within the `hg-git` test suite. Differential Revision: https://phab.mercurial-scm.org/D9639
Tue, 01 Dec 2020 14:46:55 +0100 hg-core: add format-bytes dependency
Raphaël Gomès <rgomes@octobus.net> [Tue, 01 Dec 2020 14:46:55 +0100] rev 46181
hg-core: add format-bytes dependency This will be used in the next patch to make error messages that require bytestring concatenation clearer. Differential Revision: https://phab.mercurial-scm.org/D9409
Sat, 26 Dec 2020 18:26:32 +0530 rebase: handle the case when nothing to rebase (dry-run)
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 26 Dec 2020 18:26:32 +0530] rev 46180
rebase: handle the case when nothing to rebase (dry-run) In dry-run mode, even when there was no rebase in progress it tried to abort (for context, at the end of dry-run mode we abort the in-memory performed rebase) because we were not early checking if there was any rebase started. Changes in test file reflect the fixed behavior. Differential Revision: https://phab.mercurial-scm.org/D9659
Sat, 26 Dec 2020 18:04:30 +0530 rebase: add test to demonstrate an issue in dry-run
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 26 Dec 2020 18:04:30 +0530] rev 46179
rebase: add test to demonstrate an issue in dry-run In dry-run mode, the case when there is nothing to rebase is not handled correctly. Added test show that it try to abort a rebase while there is no rebase in progress. This will be fixed in next patch. Differential Revision: https://phab.mercurial-scm.org/D9658
Mon, 28 Dec 2020 01:40:08 +0100 pycompat: fix typos
Joerg Sonnenberger <joerg@bec.de> [Mon, 28 Dec 2020 01:40:08 +0100] rev 46178
pycompat: fix typos Differential Revision: https://phab.mercurial-scm.org/D9662
Sat, 19 Dec 2020 12:07:24 +0900 chg: format code by clang-format version 11.0.1-+rc1-1
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Dec 2020 12:07:24 +0900] rev 46177
chg: format code by clang-format version 11.0.1-+rc1-1 test-check-clang-format.t started failing on my Debian sid environment, and new style looks slightly better. So let's bump the required clang-format version to 11.
Sat, 19 Dec 2020 12:01:58 +0900 test-check-interface: do not expect bare "python" executable exists
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Dec 2020 12:01:58 +0900] rev 46176
test-check-interface: do not expect bare "python" executable exists The test would crash if python executable had version suffix.
Fri, 18 Dec 2020 20:09:11 +0900 procutil: assign pseudo file object if sys.stdout/stderr is missing
Yuya Nishihara <yuya@tcha.org> [Fri, 18 Dec 2020 20:09:11 +0900] rev 46175
procutil: assign pseudo file object if sys.stdout/stderr is missing This basically simulates the Python 2 behavior. If libc stdio were used, these file objects would be available and raise EBADF. There is subtle difference between py2 and py3, but I think py3 behavior (i.e. exit 255) is more correct. "if" conditions are adjust so that they look similar to dispatch.initstdio().
Sat, 19 Dec 2020 11:10:18 +0900 procutil: introduce pseudo file object that just raises EBADF
Yuya Nishihara <yuya@tcha.org> [Sat, 19 Dec 2020 11:10:18 +0900] rev 46174
procutil: introduce pseudo file object that just raises EBADF This should be safer than closing underlying fd as the fd may be reused. On Python 2, closed sys.stdin could be redirected to a random file having fd=0, but we'd be better not copying this behavior. Only readinto() and write() are implemented according to the following ABC table. fileno() is not implemented since fd=0/1/2 may be assigned later to other files. https://docs.python.org/3/library/io.html#class-hierarchy
Fri, 18 Dec 2020 20:14:54 +0900 dispatch: gate against missing stdout/stderr
Yuya Nishihara <yuya@tcha.org> [Fri, 18 Dec 2020 20:14:54 +0900] rev 46173
dispatch: gate against missing stdout/stderr We do need procutil.stdin/stdout/stderr, but we don't care much for sys.std*. Let's leave them be None as it is the Python 3 way.
Fri, 18 Dec 2020 20:35:11 +0900 dispatch: remove stale comment about fdopen()-ed stdio
Yuya Nishihara <yuya@tcha.org> [Fri, 18 Dec 2020 20:35:11 +0900] rev 46172
dispatch: remove stale comment about fdopen()-ed stdio On Python 3, stdout is just wrapped by LineBufferedWrapper.
Sat, 19 Dec 2020 01:42:51 -0500 mergetools: add BeyondCompare 4 for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 19 Dec 2020 01:42:51 -0500] rev 46171
mergetools: add BeyondCompare 4 for Windows This is a copy of the TortoiseHg configuration, but dropping the 3-way diff and dirdiff settings (since those aren't supported in core Mercurial), and swapping the 'parent1', 'parent2', and 'base' literals for `$labellocal`, `$labelother, and `$labelbase` respectively. (That functionality was apparently never ported to TortoiseHg.) Additionally, the single quotes were removed from around these arguments, since none of the other configs have them. Differential Revision: https://phab.mercurial-scm.org/D9635
Sat, 19 Dec 2020 01:19:02 -0500 mergetools: add support for 32-bit BeyondCompare 3 on 64-bit Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 19 Dec 2020 01:19:02 -0500] rev 46170
mergetools: add support for 32-bit BeyondCompare 3 on 64-bit Windows Again, marginal usefulness, but other tools have this config and it eliminates a diff from the TortoiseHg file. Differential Revision: https://phab.mercurial-scm.org/D9634
Sat, 19 Dec 2020 01:15:44 -0500 mergetools: enable the `checkconflicts` option for Araxis Merge
Matt Harbison <matt_harbison@yahoo.com> [Sat, 19 Dec 2020 01:15:44 -0500] rev 46169
mergetools: enable the `checkconflicts` option for Araxis Merge This must have been a typo. This matches the config read in filemerge, as well as the TortoiseHg config file. Differential Revision: https://phab.mercurial-scm.org/D9633
Sat, 19 Dec 2020 01:10:57 -0500 mergetools: sync up comments with the TortoiseHg copy of the config file
Matt Harbison <matt_harbison@yahoo.com> [Sat, 19 Dec 2020 01:10:57 -0500] rev 46168
mergetools: sync up comments with the TortoiseHg copy of the config file It's of limited value, but a step towards making the diff between the two less noisy. Differential Revision: https://phab.mercurial-scm.org/D9632
Mon, 14 Dec 2020 16:33:15 +0100 rust: introduce Repo and Vfs types for filesystem abstraction
Simon Sapin <simon.sapin@octobus.net> [Mon, 14 Dec 2020 16:33:15 +0100] rev 46167
rust: introduce Repo and Vfs types for filesystem abstraction This is similar to the corresponding Python classes. Repo represents a repository and knows the path to the `.hg` directory, the `store` directory, and the working directory. Separating these will enable supporting the share extension. A Vfs is created from a Repo for one of these three directories. It has filesystem access APIs that take a relative std::path::Path as a parameter. Differential Revision: https://phab.mercurial-scm.org/D9596
Sat, 19 Dec 2020 15:56:54 +0100 bundle2: drop some outdated comment
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 19 Dec 2020 15:56:54 +0100] rev 46166
bundle2: drop some outdated comment This commend trace back to a very early bundle2 changeset c7ceae0faf69. And the code moved past this warning over 5 years ago. Differential Revision: https://phab.mercurial-scm.org/D9637
Fri, 24 Apr 2020 16:36:04 +0200 bundle: optional advisory obsolescence parts
Joerg Sonnenberger <joerg@bec.de> [Fri, 24 Apr 2020 16:36:04 +0200] rev 46165
bundle: optional advisory obsolescence parts It is useful to ship obsolescence markers as part of clonebundles or pullbundles, but they shouldn't stop a non-evolution client from working. Differential Revision: https://phab.mercurial-scm.org/D8480
Thu, 17 Dec 2020 09:35:07 -0800 relnotes: document that `hg extdiff` also got -r replaced by --from/--to
Martin von Zweigbergk <martinvonz@google.com> [Thu, 17 Dec 2020 09:35:07 -0800] rev 46164
relnotes: document that `hg extdiff` also got -r replaced by --from/--to Differential Revision: https://phab.mercurial-scm.org/D9628
Mon, 14 Dec 2020 17:22:11 +0100 hghave: add some official category for known-bad and missing-good output
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 17:22:11 +0100] rev 46163
hghave: add some official category for known-bad and missing-good output This will make it simple to tag output that are expected to changes. A simple hghave integration seems enough but smarter behavior around these seems possible in the future. Differential Revision: https://phab.mercurial-scm.org/D9607
Mon, 14 Dec 2020 01:32:22 +0100 copies: rename value/other variable to minor/major for clarity
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 01:32:22 +0100] rev 46162
copies: rename value/other variable to minor/major for clarity Differential Revision: https://phab.mercurial-scm.org/D9591
Mon, 14 Dec 2020 01:30:32 +0100 copies: extract value comparison in the python copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 01:30:32 +0100] rev 46161
copies: extract value comparison in the python copy tracing This mirror what we did in the Rust code. This is useful to prepare rework for this comparison logic that we will need to handle more advanced chaining cases (when merges are chained). Differential Revision: https://phab.mercurial-scm.org/D9590
Sun, 13 Dec 2020 19:18:10 +0100 copies: explain the "arbitrary" copy source pick in case of conflict
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 13 Dec 2020 19:18:10 +0100] rev 46160
copies: explain the "arbitrary" copy source pick in case of conflict They are a logic and it is easy to explain, so lets explain it. Differential Revision: https://phab.mercurial-scm.org/D9586
Sun, 13 Dec 2020 20:16:34 +0100 copies: properly match result during changeset centric copy tracing
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 13 Dec 2020 20:16:34 +0100] rev 46159
copies: properly match result during changeset centric copy tracing By filtering "during" the iteration we were excluding rename information that were not in the matched set but that file served as base information for the matched set. We now do all copy tracing matching at the end of the process to ensure we raise proper result. If we were aggregating information top down instead of bottom up we could do filtering during processing. However, we don't. Differential Revision: https://phab.mercurial-scm.org/D9585
Sun, 13 Dec 2020 20:26:27 +0100 copies: avoid early return in _combine_changeset_copies
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 13 Dec 2020 20:26:27 +0100] rev 46158
copies: avoid early return in _combine_changeset_copies We have to change how we deal with matching (see next changeset) and that processing is common. So we shuffle things around before doing the semantic change for clarity. Differential Revision: https://phab.mercurial-scm.org/D9584
Wed, 02 Dec 2020 15:37:54 +0100 copies-rust: record overwrite when merging
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 15:37:54 +0100] rev 46157
copies-rust: record overwrite when merging When detecting fresh value (from current rev) overwriting older ones during merges, we also record this overwrite for to help potential future comparison. This does really have any performance effect right now, but it get use closer to be able to drop all `is_ancestors` when merging. Differential Revision: https://phab.mercurial-scm.org/D9499
Wed, 02 Dec 2020 15:24:10 +0100 copies-rust: make the comparison aware of the revision being current merged
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 02 Dec 2020 15:24:10 +0100] rev 46156
copies-rust: make the comparison aware of the revision being current merged This make no significant performance change in practice (all ±2%) in practice, but it will help us to distinct between some semantically different cases later on. Differential Revision: https://phab.mercurial-scm.org/D9498
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip