Closed Bug 1513273 (hg49) Opened 5 years ago Closed 2 years ago

[meta] Mercurial 4.9 upgrade and compatibility

Categories

(Developer Services :: Mercurial: hg.mozilla.org, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: gps, Unassigned)

References

Details

(Keywords: leave-open, meta)

Attachments

(17 files, 8 obsolete files)

47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
47 bytes, text/x-phabricator-request
Details | Review
Let's get the Mercurial 4.9 tracking bug on file.
Blocks: 1513276

Mercurial 4.9rc0 was released this week. Before the official
4.9 release is cut, we like to ensure client extensions on
developer machines are tested for compatibility with the upcoming
version. After running the tests against the release candidate,
each of the following extensions passes without any code changes
and are marked as compatible in this commit:

  • firefoxtree
  • format-source
  • push-to-try
  • qbackout
  • qimportbz

This commit marks robustcheckout as compatible with Mercurial
4.9 and updates a failing test with conditional output on the
new version. The new output in the tests comes from the addition
of a new sparserevlog repo requirement[0]. Essentially this
new line in the test output indicates that the repo in question
was created with a new version of Mercurial and the same or
newer version of Mercurial must be used to act upon it. This
only applies to repositories accessed on the same filesystem,
as any legacy version of Mercurial can clone/pull the repo
over the wire and the resulting repo on disk will not have this
requirement.

Bug 1513276 tracks the work of upgrading repos on hgmo to the
new storage format.

[0] https://www.mercurial-scm.org/wiki/MissingRequirement

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/a9b37e9dcc92
hgext: mark multiple client extensions as compatible with Mercurial 4.9 r=smacleod
https://hg.mozilla.org/hgcustom/version-control-tools/rev/2dd596ba3855
robustcheckout: mark as compatible with Mercurial 4.9 and update tests r=smacleod

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Status: RESOLVED → REOPENED
Keywords: leave-open, meta
Resolution: FIXED → ---
Depends on: 1512170

Test extension works as intended under 4.9, with a few
minor additions to tests. A new cache file wcache has
been added as a virtual file system cache for files
related to the working copy. The UNIX-like exec flag
check caches are no longer shown when displaying the
caches available on the local repository as the code
path that created them has changed. Considering they
are not actually transferred later in the test, this
is not a problem.

Here we make the hooks tests pass under Mercurial 4.9. A new
log statement was added during the reposetup stage of
extension loading, which is seen in the test output.
Many (?) statements are removed and replaced with inline
version checks.

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/32f607700768
hgmo: make compatible with Mercurial 4.9 r=lars

added new "cache" and "wcache" present only in hg49
removed 2 "#if h42" blocks because we're not using versions older than 4.8
tagged 2 "--config" lines as not appearing when using hg49

added new "cache" and "wcache" present only in hg49
removed 2 "#if h42" blocks because we're not using versions older than 4.8
tagged 2 "--config" lines as not appearing when using hg49

Attachment #9055541 - Attachment is obsolete: true
Attachment #9055542 - Attachment is obsolete: true
Attachment #9055543 - Attachment is obsolete: true
Attachment #9055544 - Attachment is obsolete: true
Attachment #9055545 - Attachment is obsolete: true
Attachment #9055546 - Attachment is obsolete: true
Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/71545cbde3e6
hghooks: make hooks compatible with Mercurial 4.9 r=lars

1 - tests that list the .hg need to have some additonal files
that are seen when using hg49 (.../test-hgrc-replicate.t)
2 - tests that depend on the contents of the
.../mozilla-central/.hg/requires file need to have an
additional line when using hg49

Pushed by lars@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/75145f5864c4
hg49: make vcsreplicator/tests compatible r=sheehan
Attachment #9055959 - Attachment is obsolete: true

In attempting to fix test-pushkey-obsolescence.t to make
vcsreplicator compatible with Mercurial 4.9, I needed to allow
serving the unfiltered repoview on hgssh. This had the
potential to change the behaviour of pulls against the ssh
endpoint on hgmo, so to ensure we don't change the intended
behaviour by accident, I've added a test which demonstrates
the current behaviour.

We still have quite a few (hg4X !) conditional output in tests
for versions that are not 4.8 or 4.9. In this commit, we clean
up our tests by removing the unnecessary conditionals.

This commit patches the hgssh vcsreplicator Mercurial extension to
serve the unfiltered repoview for pull operations performed by
the unfiltereduser. This fixes failures where consumers were
unable to process changegroup messages that referenced now-obsolete
changesets on hgssh. After this patch, the vcs-sync user is always
able to pull the necessary changesets down to hgweb machines.

The number of files that Mercurial advertised as changed has been
reduced by 1 in some cases under the new behaviour. Looking at the
change, the behaviour is more correct (introducing a changeset that
made 0 changes to 1 files doesn't make much sense) after this patch
is applied. I believe Mercurial is no longer counting new obsolescence
markers as having changed files under the hood, but I have yet to
find the exact changeset in core Mercurial to verify.

test-ssh-pull.t passes as expected after this change, under 4.8
and 4.9.

In this commit we upgrade all hgweb Mercurial installations to
version 4.9.1.

In this commit we upgrade all hgssh Mercurial installations to
version 4.9.1.

Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/e21d785cb133
vcsreplicator: add a test demonstrating pull behaviour on hgssh r=lars
https://hg.mozilla.org/hgcustom/version-control-tools/rev/9a114f7abf94
vcsreplicator: remove test output conditional on unsupported Mercurials r=lars
https://hg.mozilla.org/hgcustom/version-control-tools/rev/2deacafd9abb
vcsreplicator: serve the unfiltered repoview on hgssh r=lars
https://hg.mozilla.org/hgcustom/version-control-tools/rev/8fdb71a76345
ansible/hg-web: upgrade Mercurial to 4.9.1 r=lars
https://hg.mozilla.org/hgcustom/version-control-tools/rev/d4167b373314
ansible/hg-ssh: upgrade Mercurial to 4.9.1 r=lars
https://hg.mozilla.org/hgcustom/version-control-tools/rev/013be7806476
hg49: upgrade to Mercurial 4.9.1 elsewhere in the codebase r=lars
Blocks: hg50
Depends on: 1547276
Regressions: 1548149
Pushed by cosheehan@mozilla.com:
https://hg.mozilla.org/hgcustom/version-control-tools/rev/1e8f278de369
obsolescencehacks: mark as compatible with Mercurial 4.9

Oups, sorry

Attachment #9089049 - Attachment description: hgext: clang-format hg hook: (Bug 1513273) Skip clang-format task when called by moz-phab r?glob → hgext: clang-format hg hook: (Bug 1577241) Skip clang-format task when called by moz-phab r?glob

Comment on attachment 9089049 [details]
hgext: clang-format hg hook: (Bug 1577241) Skip clang-format task when called by moz-phab r?glob

Revision D43962 was moved to bug 1577241. Setting attachment 9089049 [details] to obsolete.

Attachment #9089049 - Attachment is obsolete: true
Status: REOPENED → RESOLVED
Closed: 5 years ago2 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: