Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 21 Dec 2020 08:42:30 +0100] rev 46609
copies-rust: rename TimeStampedPathCopy to CopySource
Same rational as the previous changesets. CopySource is a clear descriptive name
that does not depends on an implementation details that we are about to the
change.
Differential Revision: https://phab.mercurial-scm.org/D9642
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 15 Dec 2020 17:26:00 +0100] rev 46608
copies-rust: rename TimeStampedPathCopies to InternalPathCopies
We are looking into moving away from TimeStampedPathCopy (that use is_ancestors
call to detect overwrite) in favor of an approach that does not requires
is_ancestors calls. Yet we will still need an internal representation that
differs from the returned result.
So we call it "InternalPathCopies" which is generic but clear.
Differential Revision: https://phab.mercurial-scm.org/D9641
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 12 Dec 2020 19:35:08 +0100] rev 46607
copies: detect case when a merge decision overwrite previous data
We now detect and record when a merge case required special logic (eg: thing
that append during the merge, ambiguity leading to picking p1 data, etc) and we
explicitly mark the result as superseding the previous data.
This fixes the family of test we previously added.
Differential Revision: https://phab.mercurial-scm.org/D9613
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 19:26:33 +0100] rev 46606
copies: rearrange all value comparison conditional
To properly handle the newly tested case (chaining of merges) we will need to
detect more accurately when an actualy merging of the copy information (and
superseed the two existing data). Before starting to do so, we need to
reorganise the values comparison to introduce different conditional branches
when such actual merging is needed/detected.
To avoid mixing too many change in this complicated code, we do the
reorganisation before adding the "overwrite detection" logic in the next
changesets.
Differential Revision: https://phab.mercurial-scm.org/D9612
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 12:21:00 +0100] rev 46605
test-copies: introduce merge chains test for the P/Q merges
This is similar to the chaining test we have for the A/E merges.
The current result of this tests is wrong, as for the other test of the same
familly. This will be fixed by a later changesets.
Differential Revision: https://phab.mercurial-scm.org/D10059
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 11:56:58 +0100] rev 46604
test-copies: add a case involving the `b` and a new `r` branch
That case involve a branch overwriting copies information from the other one.
It is similar to the `mBFm` / `mFBm` case except this case actual content merge
is involved too.
Differential Revision: https://phab.mercurial-scm.org/D10058
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:46:33 +0100] rev 46603
test-copies: introduce case combining the `p` and `q` branch
That case involves conflicting copies information from each branch. It is
similar to the `mAEm` / `mEAm` case except this case actual content merge is
involved too.
Differential Revision: https://phab.mercurial-scm.org/D10057
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:47:15 +0100] rev 46602
test-copies: add a `q` branch similar to the `e` but on the new files
This branch will be used to create merge case that mirror ones involving the `e` branch.
Differential Revision: https://phab.mercurial-scm.org/D10056
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 20:47:07 +0100] rev 46601
test-copies: add a `p` branch similar to the `a` but on the new files
This branch will be used to create merge case that mirror ones involving the `a` branch.
Differential Revision: https://phab.mercurial-scm.org/D10055
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 18:57:09 +0100] rev 46600
test-copies: move the new files in the `i` branch
The initial branch is moving some of the "same content" file around. We do the
same for the "different content" before start to implement more tests.
The new files have harmless impact of various existing tests.
Differential Revision: https://phab.mercurial-scm.org/D10054
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 17:06:12 +0100] rev 46599
test-copies: add 3 new files with their own content
The new `p`, `q` and `r` file mirror the `a`, `b` and `h` but with different
content for each files. This will be used to create "mirror" test case that
involve actual merge happening.
For now, we only add the file to keep patches small and easier to review.
Differential Revision: https://phab.mercurial-scm.org/D10053
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 16:37:55 +0100] rev 46598
test-copies: introduce merge chaing test for the A/E + change tests
This is similar to the chaining test we have for the A/E merges (without change).
The current result of this tests is wrong, as for they "without change counter
part". This will be fixed by a later changesets.
Differential Revision: https://phab.mercurial-scm.org/D10052
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 19:39:33 +0100] rev 46597
test-copies: add a "change during merge" variant to the A+E test
Checks inline comment for details.
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 22:56:46 +0100] rev 46596
test-copies: filter out the linkrev part of `debugindex`
It is not really useful for the tests and is a large source of churn when adding
more revisions to the tests.
Differential Revision: https://phab.mercurial-scm.org/D10050
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 19 Feb 2021 22:27:25 +0100] rev 46595
test-copies: use "case-id" instead of revision number when listing sidedata
The revision number are not very informative and can change when new changeset
are added, creating unnecessary churn. We change the template before adding more
test to improve clarify of the over changesets.
Differential Revision: https://phab.mercurial-scm.org/D10049
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 17 Feb 2021 21:08:45 +0100] rev 46594
test-copies: remove revision number from log
Differential Revision: https://phab.mercurial-scm.org/D10048
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 17:56:56 +0100] rev 46593
test-copies: add test chaining multiple merge
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9611
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 14 Dec 2020 17:56:30 +0100] rev 46592
test-copies: add test chaining multiple merges
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9610
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 15:43:54 +0100] rev 46591
test-copies: add test chaining multiple merges
Right now, the copy tracing logic take the right decision for merges, but it
does not keep track of the right information about these decision and can fall
into later traps. We start with highlighting this possibility by adding new
tests, and we will fix them later.
Check the inline test documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D9609
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Feb 2021 13:49:55 +0100] rev 46590
test-copies: add subcase titles for various "conflicting" information variant
This make the transitions between case clearer.
Differential Revision: https://phab.mercurial-scm.org/D10047
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 18 Feb 2021 12:45:16 +0100] rev 46589
test-copies: improve description of the B+F case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10046
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 06:02:09 +0100] rev 46588
test-copies: improve description of the C+H case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10045
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:58:22 +0100] rev 46587
test-copies: improve description of the B+C "revert/restore" case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10044
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:54:55 +0100] rev 46586
test-copies: improve description of the G+C case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10043
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:46:32 +0100] rev 46585
test-copies: improve description of the G+F case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10042
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:39:22 +0100] rev 46584
test-copies: improve description of the D+G case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10041
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:35:18 +0100] rev 46583
test-copies: improve description of the A+E case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10040
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:32:20 +0100] rev 46582
test-copies: improve description of the B+D case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10039
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:29:04 +0100] rev 46581
test-copies: improve description of the B+C case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10038
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:26:46 +0100] rev 46580
test-copies: improve description of the A+B case
This will make its role clearer.
Differential Revision: https://phab.mercurial-scm.org/D10037
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 16 Feb 2021 05:19:23 +0100] rev 46579
test-copies: use intermediate variable some commit descriptions
Right now, everything mostly says "simple merge", we want to use something a bit
more descriptive. Before doing any changes, we do most of the churn. This helps
the next sets of changesets to be clearer.
Differential Revision: https://phab.mercurial-scm.org/D10036
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 22 Feb 2021 18:48:45 +0100] rev 46578
test-copies: don't use empty file for "same content" cases
For main case (using filelog or sidedata), this lead to the following hash
change.
Changesets:
- 01c2f5eabdc4ce2bdee42b5f86311955e6c8f573 → 319179230cc87769ab3a861ebffe7a534ebb3d85
- 01c2f5eabdc4 → 319179230cc8
- c72365ee036fca4fb27fd745459bfb6ea1ac6993 → 6cbc9c2b7b391dd738603173717c601648d3735f
- c72365ee036f → 6cbc9c2b7b39
File revision for `f`:
- 0dd616bc7ab1a111921d95d76f69cda5c2ac539c → cedeacc5bf5d9b9be4d7f8394d33a5349bb29c6e
- 0dd616bc7ab1 → cedeacc5bf5d
- eb806e34ef6be4c264effd5933d31004ad15a793 → ffb76cd765422a18759a335d8a81fa2bd455be6b
- eb806e34ef6b → ffb76cd76542
- 6da5a2eecb9c833f830b67a4972366d49a9a142c → 08d1ff5926fbd0285cdeb044cbe8ab651687e86a
- 6da5a2eecb9c → 08d1ff5926fb
File revision for `d`:
- 7bded9d9da1f7bf9bf7cbfb24fe1e6ccf68ec440 → ba177bbb45ea930ee48469a55d40224537bd57a9
For the "extra in changeset" case we get the following change for file `d`:
- 68d5bca9df0577b6bc2ea30ca724e13ead60da81 → b894de5c94aadcb4894ea7c358389819c27fbcce
- 68d5bca9df05 → b894de5c94aa
- b80de5d138758541c5f05265ad144ab9fa86d1db → 56647659eff080e06e45c18ea9e848836dadea71
- b80de5d13875 → 56647659eff0
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 10 Dec 2020 14:25:36 +0100] rev 46577
test-copies: reinstall initial identical (empty) files for chained copied
This effectively back out changeset deeb215be337. Changeset deeb215be33 does not
really include a justification for its change and make mes uncomfortable. I have
been thinking about it and they are two options:
- either having empty/full files does not make a difference, and deeb215be337 is
a gratuitous changes.
- either having empty/full files do make a difference and deeb215be33 silently
change the test coverage. In such situation if we want the "not empty" case to
be tested, we should add new cases to cover them
In practice, we know that the "file content did not change, but merge still need
to create a new filenode" case exists (for example if merging result in similar
content but both parent of the file need to be recorded), and that such case are
easy to miss/mess-up in the tests. Having all the file using the same (empty)
content was done on purpose to increase the coverage of such corner case.
As a result I am reinstalling the previous test situation. To
increase the coverage of some case involving content-merge in
test-copies-chain-merge.t, we will add a new, dedicated, cases later in this
series, once various cleanup and test improvement have been set in place.
This changeset starts with reinstalling the previous situation as (1) it is more
fragile, so I am more confided getting it back in the initial situation, (2) I
have specific test further down the line that are base on these one.
The next changeset will slightly alter the test to use non-empty files for these
tests (with identical content). It should help to make the initial intent "merge file with identical
content" clearer. I am still using a two steps (backout, then change content)
approach to facilitate careful validation of the output change.
Doing so has a large impact on the output of the "copy info in changeset extra" variant
added in 5e72827dae1e (2 changesets after deeb215be33). It seems to highlight
various breakage when merge without content change are involved, this is a good
example of why we want to explicitly test theses cases. Because the different
-do- matters a lot.
Fixing the "copy info in changeset extra" is not a priority here. Because (1)
this changeset does not break anything, it only highlight that they were always
broken. (2) the only people using "copy info in changeset extra" do not have
merge.
Differential Revision: https://phab.mercurial-scm.org/D9587
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 10 Feb 2021 17:08:34 +0530] rev 46576
upgrade: speed up when we have only nodemap to downgrade
Similar to what we do on upgrade, if we have only persistent-nodemap to
downgrade we will just delete the nodemap files and update repository
requirements instead of processing all the revlogs.
After downgrade, we are left with unrequired docket and transaction files which
seems fine but can work on deleting them if someone feels we should.
Differential Revision: https://phab.mercurial-scm.org/D9992
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 15 Feb 2021 15:13:20 +0530] rev 46575
upgrade: write nodemap for manifests too
In 98e39f04d60e I assumed that writing nodemap for manifests was not desirable
and stopped writing it during upgrade. However in recent discussion with
Pierre-Yves, I learnt that that's not true.
Differential Revision: https://phab.mercurial-scm.org/D9991
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Feb 2021 12:29:41 -0800] rev 46574
windows: fix parsing of version number to match format from D9955
Differential Revision: https://phab.mercurial-scm.org/D10061
Martin von Zweigbergk <martinvonz@google.com> [Tue, 23 Feb 2021 12:26:52 -0800] rev 46573
build: make version from .hg_archival.txt consistent with that from .hg/
D9955 changed the version format to replace "-" by "." and to add "hg"
before the number representing the distance from the latest
tag. However, it missed the "hg" string and added an extra "." to the
version string we produce when there's a `.hg_archival.txt`. This
patch makes it consistent.
Differential Revision: https://phab.mercurial-scm.org/D10060
Kyle Lippincott <spectral@google.com> [Thu, 11 Feb 2021 11:22:53 -0800] rev 46572
packaging: add Provides: python3-mercurial and Homepage to debian package
There are other packages that depend on python3-mercurial, like debian's
mercurial-git, so we should mark ourselves as providing it.
I compared the control file we generate to the one that the debian maintainers
generate, and noticed several differences:
- the Homepage bit. I included this, because why not
- a more robust Suggests list that includes a graphical merge tool
- a more robust Breaks list
- debian's Recommends openssh-client, we only Recommends ca-certificates
- a split into `mercurial` and `mercurial-common` (and possibly others?)
- a slightly different description
Differential Revision: https://phab.mercurial-scm.org/D9983
Raphaël Gomès <rgomes@octobus.net> [Fri, 12 Feb 2021 09:53:48 +0100] rev 46571
bundle2: pass the operation source down to the changegroup
This is currently not used by anything in core (and redundant with the url), the
real source information is much more useful. This is going to be used in
sidedata exchange patches coming soon.
Differential Revision: https://phab.mercurial-scm.org/D9986
Kyle Lippincott <spectral@google.com> [Fri, 12 Feb 2021 13:27:03 -0800] rev 46570
gendoc: use an empty comment so aliases are separated from previous elements
For commands like `hg bookmarks`, where there's no `[+] marked option can be
specified multiple times`, this causes the final option in the option list to
not be the parent of the aliases definition. The aliases section is thus marked
as a blockquote like on commands that do have text separating the option list
and the aliases definition.
Differential Revision: https://phab.mercurial-scm.org/D9990
Kyle Lippincott <spectral@google.com> [Fri, 12 Feb 2021 11:06:56 -0800] rev 46569
gendoc: add support for loading extensions from config settings
We manage our installation and ship some extensions, enabled by default for our
users, that are in hgext3rd or other directories not scanned by this tool by
default. We want to generate docs during the build process, and having those
docs include the extensions that users don't have to manually enable is
desirable.
This is *not* desirable for the normal build process, however, and should never
be enabled by default.
Differential Revision: https://phab.mercurial-scm.org/D9989
Kyle Lippincott <spectral@google.com> [Fri, 12 Feb 2021 11:04:03 -0800] rev 46568
gendoc: support defaults on customopts a bit better
Without this, a customopt will very likely render like this:
```
-foo does foo (default: <hgext.myextension.MyOpt object at 0x7f31...>)
```
I copied this logic from how this is handled in mercurial/help.py.
Differential Revision: https://phab.mercurial-scm.org/D9988
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Feb 2021 09:49:50 -0800] rev 46567
softstrip: fix a reference to an undefined variable
`backupfile` wasn't defined if no backup was requested. Let's set it
to `None` by default, which matches what regular `repair.strip()`
does.
Differential Revision: https://phab.mercurial-scm.org/D9985
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Feb 2021 09:45:48 -0800] rev 46566
softstrip: move _bookmarkmovements() call to where it's needed
The call to `_bookmarkmovements()` is unrelated to the backup, so
let's move it after.
Differential Revision: https://phab.mercurial-scm.org/D9984
Raphaël Gomès <rgomes@octobus.net> [Fri, 12 Feb 2021 12:51:28 +0100] rev 46565
tests: fix differing output between py2 and py3
db9e33beb0fb broke the tests because of the difference in bytestring repr
between py2 and py3. Rather than backout that change for so little, I figured
I'd fix it myself.
Hopefully Python 2 supports gets dropped very soon.
Differential Revision: https://phab.mercurial-scm.org/D9987
Joerg Sonnenberger <joerg@bec.de> [Thu, 04 Feb 2021 23:11:42 +0100] rev 46564
build: fake PEP440 versions
If the current version is not exactly a tag, use a local version
specifier to fix it up. PEP 440 uses the "+" separator and only allows
alphanumeric and dot, so use dot for further separations.
Old devel build: 5.7+155-a163cc36d06b
New devel build: 5.7+hg155.a163cc36d06b
Differential Revision: https://phab.mercurial-scm.org/D9955
Kyle Lippincott <spectral@google.com> [Thu, 04 Feb 2021 11:32:08 -0800] rev 46563
tests: add a comment in a test that will hopefully save someone some time
I spent at least an hour, probably closer to 1.5, trying to figure out what this
was complaining about. Hopefully anyone else in my position will see this note
and not waste the time.
Differential Revision: https://phab.mercurial-scm.org/D9953
Joerg Sonnenberger <joerg@bec.de> [Wed, 27 Jan 2021 03:07:14 +0100] rev 46562
changegroup: don't convert revisions to node for duplicate handling
The only consumer can handle revision lists fine. Avoid
materializing a range if there are no duplicates as optimization.
Differential Revision: https://phab.mercurial-scm.org/D9884
Joerg Sonnenberger <joerg@bec.de> [Wed, 27 Jan 2021 02:34:51 +0100] rev 46561
revlog: change addgroup callbacks to take revision numbers
Differential Revision: https://phab.mercurial-scm.org/D9883
Joerg Sonnenberger <joerg@bec.de> [Wed, 27 Jan 2021 01:43:17 +0100] rev 46560
revlog: change addrevision to return the new revision, not node
Differential Revision: https://phab.mercurial-scm.org/D9882
Joerg Sonnenberger <joerg@bec.de> [Wed, 27 Jan 2021 00:55:20 +0100] rev 46559
revlog: change addrawrevision to return the revision
Differential Revision: https://phab.mercurial-scm.org/D9881
Joerg Sonnenberger <joerg@bec.de> [Tue, 26 Jan 2021 23:56:11 +0100] rev 46558
revlog: change _addrevision to return the new revision
The node is passed as argument already, so returning it is quite
pointless. The revision number on the other is useful as it decouples
the caller from the revlog internals.
Differential Revision: https://phab.mercurial-scm.org/D9880
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 23:41:58 +0100] rev 46557
rhg: add limited support for the `config` sub-command
Only with one argument and no flag. This is mostly for testing.
Differential Revision: https://phab.mercurial-scm.org/D9972
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 23:08:44 +0100] rev 46556
rhg: Add support for --config CLI arguments
Differential Revision: https://phab.mercurial-scm.org/D9971
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 21:37:30 +0100] rev 46555
rhg: Add support for -R and --repository command-line arguments
Differential Revision: https://phab.mercurial-scm.org/D9970
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 21:28:52 +0100] rev 46554
rhg: Replace subcommand boilerplate with a macro
This removes some repetition, and will avoid additional repetition
in the next commit.
Differential Revision: https://phab.mercurial-scm.org/D9969
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 21:05:36 +0100] rev 46553
rhg: Move subcommand CLI arguments definitions to respective modules
Differential Revision: https://phab.mercurial-scm.org/D9968
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 20:33:04 +0100] rev 46552
rhg: replace command structs with functions
The `Command` trait was not used in any generic context,
and the struct where nothing more than holders for values parsed from CLI
arguments to be available to a `run` method.
Differential Revision: https://phab.mercurial-scm.org/D9967
Simon Sapin <simon.sapin@octobus.net> [Mon, 08 Feb 2021 11:13:56 +0100] rev 46551
rust: Use the DisplayBytes trait in config printing
This is similar to `std::fmt::Display`, but for arbitrary bytes instead
of Unicode. Writing to an abstract output stream helps avoid allocating
intermediate `Vec<u8>` buffers.
Differential Revision: https://phab.mercurial-scm.org/D9966
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 Feb 2021 13:32:11 -0800] rev 46550
log: respect diff.merge in -p output
Differential Revision: https://phab.mercurial-scm.org/D9958
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 Feb 2021 13:21:01 -0800] rev 46549
diff: extract function for getting possibly re-merged parent to diff against
We'll want to reuse the logic that `hg diff --change` with
`diff.merge` uses. At least `hg log -p` should reuse it. This patch
therefore extracts that code to a function.
Differential Revision: https://phab.mercurial-scm.org/D9957
Martin von Zweigbergk <martinvonz@google.com> [Thu, 04 Feb 2021 13:05:51 -0800] rev 46548
diff: replace --merge option by config option
I can't think of any reason you'd want to enable the merge diff on a
run-to-run basis; you'd probably either always or never want it set
(though I can't see why you'd never want it set). If you have it set,
you'll probably also want the same output in `hg log -p`
output. Having a single config option for the feature makes sense.
Differential Revision: https://phab.mercurial-scm.org/D9956
Matt Harbison <matt_harbison@yahoo.com> [Thu, 24 Dec 2020 11:21:23 -0500] rev 46547
tagcache: distinguish between invalid and missing entries
The TortoiseHg repo has typically not had a newly applied tag accessible by name
for recent releases, for unknown reasons. Deleting and rebuilding the tag cache
doesn't fix it, though deleting the cache and running `hg log -r $new_tag` does.
Eventually the situation does sort itself out for new clones from the server.
In an effort to figure out what the issue is, Pierre-Yves David suggested
listing these entries in the debug output more specifically.
This isn't complete yet- the second test change that says "missing" is more like
"invalid", since it was truncated. The problem there is the code that reads the
raw array truncates any partial records and then fills it with 0xFF, which
signifies that it is missing. As a side note, that means the check for the
length when validating an existing entry never fails.
Differential Revision: https://phab.mercurial-scm.org/D9811
Martin von Zweigbergk <martinvonz@google.com> [Thu, 11 Feb 2021 20:36:46 -0800] rev 46546
branching: merge with stable
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 15:04:53 +0100] rev 46545
rhg: Parse per-repository configuration
Differential Revision: https://phab.mercurial-scm.org/D9964
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 14:29:47 +0100] rev 46544
rhg: Abort based on config on share-safe mismatch
Differential Revision: https://phab.mercurial-scm.org/D9963
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 13:17:55 +0100] rev 46543
rhg: Parse system and user configuration at program start
… and pass it around up to `Repo::find`
Differential Revision: https://phab.mercurial-scm.org/D9962
Simon Sapin <simon.sapin@octobus.net> [Thu, 04 Feb 2021 13:16:21 +0100] rev 46542
rust: Parse system and user configuration
CLI `--config` argument parsing is still missing, as is per-repo config
Differential Revision: https://phab.mercurial-scm.org/D9961
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 13:32:00 +0100] rev 46541
rust: Remove unnecessary check for absolute path before joining
`Path::join` does the right thing if its argument is absolute.
Differential Revision: https://phab.mercurial-scm.org/D9960
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 12:25:53 +0100] rev 46540
rust: replace read_whole_file with std::fs::read
It does the same thing
Differential Revision: https://phab.mercurial-scm.org/D9959
Martin von Zweigbergk <martinvonz@google.com> [Tue, 09 Feb 2021 09:37:39 -0800] rev 46539
wireprotopeer: clarify some variable names now that we allow snake_case
"encargsorres" is hard to parse ("encarg sorres" sounds like it might
be Spanish to me, and indeed Google Translate tells me that it's
Catalan for "order sands"). Let's clarify with some added underscores
and longer names.
Differential Revision: https://phab.mercurial-scm.org/D9973
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Feb 2021 07:02:25 +0100] rev 46538
copy-tracing: add a --compute flag to debugchangedfiles
This will help analysis of possible misbehaving cases.
Differential Revision: https://phab.mercurial-scm.org/D9946
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2021 23:23:56 -0800] rev 46537
bundle2: print "error:abort" message to stderr instead of stdout
It seems like the server's message is something you'd like to see even
with `--quiet`. It's clearly part of the error.
Differential Revision: https://phab.mercurial-scm.org/D9954
Martin von Zweigbergk <martinvonz@google.com> [Wed, 03 Feb 2021 13:55:58 -0800] rev 46536
narrow: add --no-backup option for narrowing
Most of our users at Google use Mercurial on a file system that keeps
backups of previous versions of all files, including those in
`.hg/`. They therefore don't need a separate backup in the file system
when narrowing their repo (which they typically do by running `hg
tracked --auto-remove-includes`). Backups can be very slow. `hg strip`
already has a `--no-backup` option. This patch adds the same option to
`hg tracked --removeinclude/--addexclude`.
Differential Revision: https://phab.mercurial-scm.org/D9951
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 29 Jan 2021 15:23:07 +0100] rev 46535
debugdiscovery: add flags to run discovery on subsets of the local repo
Generating new repository using strip of local clone is very expensive for large
repositories. And such large repository are the most likely to requires
debugging around discovery. So we add a simple way to run discovery using
provided sets of heads.
Differential Revision: https://phab.mercurial-scm.org/D9945
Augie Fackler <augie@google.com> [Tue, 02 Feb 2021 13:25:28 -0500] rev 46534
branching: merge with stable
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 01 Feb 2021 00:02:00 +0530] rev 46533
upgrade: implement partial upgrade for upgrading persistent-nodemap
Upgrading repositories to use persistent nodemap should be fast and easy as it
requires only two things:
1) Updating the requirements
2) Writing a persistent-nodemap on disk
For both of the steps above, we don't need to edit existing revlogs.
This patch makes upgrade only do the above mentioned two steps if we are
only upgarding to use persistent-nodemap feature.
Since `nodemap.persist_nodemap()` assumes that there exists a nodemap file for
the given revlog if we are trying to call it, this patch adds `force` argument
to create a file if does not exist which is true in our upgrade case.
The test changes demonstrate that we no longer write nodemap files for manifest
after upgrade which I think is desirable.
Differential Revision: https://phab.mercurial-scm.org/D9936
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 01 Feb 2021 00:10:27 +0530] rev 46532
tests: unquiet a test to show changes in next patch
Differential Revision: https://phab.mercurial-scm.org/D9935
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 31 Jan 2021 23:40:57 +0530] rev 46531
nodemap: fix a typo in error message
Differential Revision: https://phab.mercurial-scm.org/D9934
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 31 Jan 2021 23:38:31 +0530] rev 46530
revlog: refactor logic to compute nodemap file in separate function
I will like to use it one more place.
Differential Revision: https://phab.mercurial-scm.org/D9933
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 31 Jan 2021 23:34:59 +0530] rev 46529
nodemap: make `_persist_nodemap` a public function
I will like to have a utility function using which we can directly write out
nodemap for a repository without going through the recloning process. This
function seems like the one containing important pieces for that. Let's make it
public.
Differential Revision: https://phab.mercurial-scm.org/D9932
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 31 Jan 2021 23:13:08 +0530] rev 46528
engine: 'if not, else' -> 'if, else'
I personally feel that
```
if x:
pass
else:
pass
```
is easier to read and edit than
```
if not x:
pass
else:
pass
```
Next patches will add one more if-else clause.
Differential Revision: https://phab.mercurial-scm.org/D9931
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Jan 2021 14:23:47 +0530] rev 46527
debugcommands: s/stdin/stdout in debugnodemap help
Differential Revision: https://phab.mercurial-scm.org/D9930
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Jan 2021 15:51:00 -0800] rev 46526
errors: use InputError in uncommit extension
Differential Revision: https://phab.mercurial-scm.org/D9911
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 11:41:10 +0100] rev 46525
rhg: add support for share-safe
Differential Revision: https://phab.mercurial-scm.org/D9942
Simon Sapin <simon.sapin@octobus.net> [Thu, 14 Jan 2021 13:04:12 +0100] rev 46524
rhg: initial support for shared repositories
Differential Revision: https://phab.mercurial-scm.org/D9941
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 19:30:28 +0100] rev 46523
rhg: Add basic test with a shared repository
Differential Revision: https://phab.mercurial-scm.org/D9940
Matt Harbison <matt_harbison@yahoo.com> [Tue, 02 Feb 2021 10:56:53 -0500] rev 46522
tests: print the server error log in `test-url-download.t`
There was a stray 500 error in CI, but no additional context to know what the
issue was.
https://foss.heptapod.net/octobus/mercurial-devel/-/jobs/163093
Differential Revision: https://phab.mercurial-scm.org/D9949
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Feb 2021 15:35:58 +0100] rev 46521
ci-fix: backed out changeset 45afff0f530a
This changeset is part of a series that break Continuous integration on python 2
for about a week. As not concrete solution have been found so far the safer
seems to back it out until we can figure the details out.
Differential Revision: https://phab.mercurial-scm.org/D9948
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 02 Feb 2021 15:35:38 +0100] rev 46520
ci-fix: backed out changeset d4c8b4b90ecb
This changeset is part of a series that break Continuous integration on python 2
for about a week. As not concrete solution have been found so far the safer
seems to back it out until we can figure the details out.
Differential Revision: https://phab.mercurial-scm.org/D9947
Augie Fackler <augie@google.com> [Mon, 01 Feb 2021 17:13:24 -0500] rev 46519
relnotes: add entry for `hg diff --merge -c`
Differential Revision: https://phab.mercurial-scm.org/D9944
Martin von Zweigbergk <martinvonz@google.com> [Mon, 01 Feb 2021 12:55:53 -0800] rev 46518
branching: merge with stable
Augie Fackler <augie@google.com> [Mon, 01 Feb 2021 11:57:18 -0500] rev 46517
diff: suppress `merging foo` output lines when performing a merge diff
Differential Revision: https://phab.mercurial-scm.org/D9939
Augie Fackler <augie@google.com> [Thu, 07 May 2020 16:50:26 -0400] rev 46516
diff: add experimental support for "merge diffs"
The way this works is it re-runs the merge and "stores" conflicts, and then
diffs against the conflicted result. In a normal merge, you should only see
diffs against conflicted regions or in cases where there was a semantic
conflict but not a textual one. This makes it easier to detect "evil merges"
that contain substantial new work embedded in the merge commit.
Differential Revision: https://phab.mercurial-scm.org/D8504
Simon Sapin <simon.sapin@octobus.net> [Mon, 01 Feb 2021 12:55:31 +0100] rev 46515
rust: use HgError in ConfigError
Differential Revision: https://phab.mercurial-scm.org/D9938
Simon Sapin <simon.sapin@octobus.net> [Thu, 28 Jan 2021 20:31:42 +0100] rev 46514
rust: Fold find_root and check_requirements into Repo::find
Differential Revision: https://phab.mercurial-scm.org/D9906