hgtool printed the hg version info when running. This is useful data
when debugging Mercurial failures. Add it back in.
We also add `hg debuginstall`, which prints useful bits about the
install, including the Python path and version.
MozReview-Commit-ID: IeKhfWDXEys
--HG--
extra : rebase_source : 93496db608a2f9480e521c526e30a25646583997
Now that the MercurialVCS VCS tool does things optimally, we no longer
need to use hgtool!
Again, this will effectively require a modern Mercurial version or
things will fail.
MozReview-Commit-ID: 9SM9qfYGlU6
--HG--
extra : rebase_source : 541303fb53a4ebd9aa4fd3313f8c72182d01ad37
The code for ensure_repo_and_revision() has been completely overhauled.
We now require shared repos using auto pooled storage via the share
extension. This ensures that only a single copy of a logical
repository's history is stored on disk. e.g. if you clone
mozilla-central, inbound, and try, they'll all automatically share the
same storage.
The new code ensures the destination repo is using modern conventions
and will delete the destination repo if it isn't. So once this gets
deployed to production, machines will slowly start using optimal
storage. This should make VCS operations significantly faster.
Another optimization that is now in here is we check for presence of the
wanted revision before doing `hg pull`. This saves some communication
with the server if the revision is already present locally.
This change effectively requires a modern version of Mercurial to be
installed to run ensure_repo_and_revision(). Since Mercurial <3.7.3 has
security vulnerabilities, we shouldn't be running <3.7.3 in automation.
So I think this will be OK. If not, it will certainly be easy to
identify which machines aren't updated!
MozReview-Commit-ID: 62jtAsDj7rU
--HG--
extra : rebase_source : a43d7f54b16e71940e45ddf05402449575fccfee
MercurialVCS doesn't currently implement the VCSMixin interface.
This commit copies the implementation of query_pushinfo() from
HgtoolVCS to MercurialVCS so it implements the interface.
MozReview-Commit-ID: LKpLVhQoKww
--HG--
extra : rebase_source : 358d37e29f9239c0b1c084c0251af7a94c1f526a
We currently have a "clone_by_revision" property that indicates to
perform a `hg clone -r`. We use it for cloning from Try.
Cloning single revisions undermines the benefits of clone bundles. So,
I'll be replacing "clone_by_revision" with a feature that clones from
another "upstream" repo then does a `hg pull -r` on the wanted revision.
This commit starts that work by introducing a "clone_upstream_url"
property. We define it on Try. It is currently unused.
MozReview-Commit-ID: Dohs8bCTUkB
--HG--
extra : rebase_source : 17b643f32747d494db04a2e80c4f94308b13618e
We no longer use <3.7 in automation. So drop support for <3.2. While I
was here, I also added magic variables to the extension so Mercurial
can react intelligently to version compatibility issues.
MozReview-Commit-ID: 4tAvQljasDR
--HG--
extra : rebase_source : ef2b5070014507533b5c0ec17449d62ba1bedad8
extra : source : 43c18590fcc7bbf7573647c2f225f4a82dd55730
The build/tools repo has a "purgelong" extension that is used to delete
long filenames on Windows. Without this extension, the APIs Mercurial
uses may run into path length issues and `hg purge` will fail.
This commit is a straight import of the purgelong extension
from https://hg.mozilla.org/build/tools minus the shebang line, which
isn't needed.
MozReview-Commit-ID: FIrEeWDf2Dl
--HG--
extra : rebase_source : ce34dc3dbcfbb9463022f3019f167a58cb396ef3
We had a test environment running on Python 2.6 and an ancient version
of Mercurial. AFAICT we run Python 2.7 everywhere, so this environment
can be dropped.
We also upgrade to Mercurial 3.7.3, as that is what automation now runs.
MozReview-Commit-ID: 7WTyD3CUjtj
--HG--
extra : rebase_source : 8e37b215fb2bff2f12658fd5ad3b61d631ec26c7
This simplifies some old code. We get rid of a whitelist of services, and rely on the face that accessibility and explore by touch is enabled to enter our internal accessibility mode.
The whitelist methode held 2 assumptions that are not true anymore:
1. There are some non-accessibility accessibility service apps in the wild that read notifications.
In later Android versions this has been made into a non-a11y use case with NotificationListenerService. So the cases of non-a11y accessibility services has shrunk.
2. Not all screen readers (Gingerbread TalkBack, for example) supported explore by touch. Today, we
exclusively support accessibility services that use explore by touch, and we should not activate our
accessibility mode in any other case.
MozReview-Commit-ID: LMeCedoIGbb
GetUserMediaLog is a holdover from when when used PRLogModule and needed
to avoid a static constructor. Now we have LazyLogModule, which doesn't
invoke static constructors, and so we can use that directly, rather than
indirecting through GetUserMediaLog. This change also helps avoid an
unused function warning when logging is disabled.
In the upcoming patch to disable logging, we're going to conditionally
turn MOZ_LOG_TEST into a constant false. But for this instance of
MOZ_LOG_TEST in nsPresContext, turning it into a constant means that
|log| becomes unused. Since |log| isn't used after this point, let's
move the |gfxPlatform::GetLog| call into the MOZ_LOG_TEST call, removing
the temporary variable, and making the compiler happy.
Using temporary variables here makes the code a bit clearer by not
repeating the readUint32 call. A temporary variable also avoids the
compiler complaining about not using the result of readUint32 (which is
a MOZ_MUST_USE function) for the upcoming logging disabling patch.
ScopedCERTCertList is based on Scoped.h, which is deprecated in favour of the
standardised UniquePtr.
Also changes CERTCertList parameters of various functions to make ownership more
explicit.
MozReview-Commit-ID: EXqxTK6inqy
--HG--
extra : transplant_source : %9B%A9a%94%D1%7E%2BTa%9E%9Fu%9F%02%B3%1AT%1B%F1%F6