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