The wizard has been ported to the version-control-tools repository
and in-tree consumers have been switched to consume it from there. This
code is now dead. Kill it.
References to the now-defunct code have been removed/updated.
MozReview-Commit-ID: 5fpCXdNIp8L
--HG--
extra : rebase_source : 6c1e2363793fe2cd3a506ce5d962788657871203
extra : histedit_source : c40d2203aaa54bbd48e4e2b46178e277dcdc2e3f
This begins the consolidation of `mach mercurial-setup` into
`mach bootstrap`. The first step is to move the content of the
mach_commands.py file into the bootstrapper's.
I'm not crazy about adding the sys.path entry for tools/mercurial.
I intend to clean this up later.
MozReview-Commit-ID: Cq56wPG8sO1
--HG--
extra : rebase_source : 48d6d2631760c9333bf99285673430948085630e
extra : histedit_source : e062f6fbc0ae9678347801b4a1f1c9b6912afd52
I never really liked this. Other people had even more visceral
reactions. Let's get rid of it.
The code for touching a file when it runs has also been removed because
the only thing it was used for was the nagging feature.
MozReview-Commit-ID: ERUVkEYgkzx
--HG--
extra : rebase_source : 1c1ed9c00eb2164d19e4405f2b8becf59680d1ed
extra : histedit_source : 9f2ebc64443140c0bc853ee5a3418f4e0f03db7b
The hgwatchman project has been renamed to fsmonitor and has been moved
into Mercurial core, as of version 3.8.
Accordingly, for Mercurial >= 3.8, we shall skip installing hgwatchman
but just set fsmonitor in hgrc file instead.
DONTBUILD (NPOTB)
MozReview-Commit-ID: 426rla5riCM
--HG--
extra : rebase_source : 359eb135a2c16361125da6f1fe97eedf9434032e
Our policy is to support the last 4 releases of Mercurial. 3.8 is out.
So we bump the minimum version to 3.5.
MozReview-Commit-ID: 9cftV7CscRL
--HG--
extra : rebase_source : c1875946afc0b8a586d3ec474adece7321812be7
extra : amend_source : 0fa318cd26de3dc0b73033713818f371e43ddd9c
These variables specify a version of Mercurial that is considered
modern and won't trigger giant warnings about being out of date.
We bump to 3.7.3 because 3.7.3 contains security fixes and it is
important for as many users as possible to get these security fixes.
We also update the messaging to indicate security issues with older
releases.
MozReview-Commit-ID: H4utKINrW0V
--HG--
extra : rebase_source : 5247fec94d7df351ef3c7bb2aa60396bb19a6196
extra : amend_source : 70b9aa52cde71d11e2b6d65a1a83567b8a0c7965
MQ isn't recommended for modern Mercurial development. Stop advertising
it.
MozReview-Commit-ID: IOx3A5ZeJnJ
--HG--
extra : rebase_source : a6b49ebdba3fbdb0b0bab13fd59aae3fcdcf167c
Per
https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-April/083649.html
the hgwatchman repo has been blanked. We should pin to the last
changeset before the blanking so people can still run hgwatchman.
We'll also need to teach `mach mercurial-setup` to install the
fsnotifier extension. That's for a different patch and bug.
DONTBUILD (NPOTB)
MozReview-Commit-ID: GyuDMTwARqo
--HG--
extra : rebase_source : be782f0262006a29f5b48add98fddda9dd2cdbd7
Before, we didn't update host fingerprints if old values were present
and we were running a modern Mercurial and Python.
Now, we unconditionally update existing fingerprints.
DONTBUILD (NPOTB)
MozReview-Commit-ID: 1yjNGkJ6FAk
--HG--
extra : rebase_source : 12a2c6a3615b3ad4449171bcfb6f3c41cda670ed
We disable various extensions when running `hg` commands as part
of `mach mercurial-setup` because they can interfere with operations.
e.g. if the extension isn't compatible with your version of hg, you
will get an error.
For some reason "mozext" wasn't part of this list. Fix that.
DONTBUILD (NPOTB)
--HG--
extra : rebase_source : de041f677d32cc619cf38841ec76aa1adcd2b483
3.5.2 is what is listed in `mach mercurial-setup`. These should match.
Add a comment to each file saying to change both.
--HG--
extra : commitid : FebjTovmqGk
extra : rebase_source : 50490c1896a4c402f27cf4154b155932614da558
extra : amend_source : 73ae0ddc9f2770351d2ee2aaf5121656fb7e5750
This grabs the list of changed and added files that match the set we expect to
be able to lint and runs them through eslint displaying simple messages on error.
--HG--
extra : commitid : FVxtG7pqP4a
extra : rebase_source : 49dde3431f40a395e36caa3f37819a91a65d3c90
extra : amend_source : fd3ce711f6204205f95d8e28ae1f4ca6b3e0fd25
Running old extensions with newer versions of Mercurial may crash `hg`
due to the old extension accessing something or doing something that has
been changed in the new release.
To minimize the risk of this happening, we disable common 3rd party
extensions when cloning or pulling as part of `mach mercurial-setup`. We
don't want to disable everything because some extensions (like
remotenames) provide features the user may want enabled as part of the
clone/update. This leaves the door open for more failures. Hopefully
this approach is sufficient. We can always revisit later.
--HG--
extra : rebase_source : 92e7d8fe227f29fc64c0f69021bd731ba762faf3
ssl.SSLContext was added in 2.7.9. I thought it was present in earlier
versions and the extra cert foo was added in 2.7.9. Derp.
--HG--
extra : rebase_source : b7a0dd2b9181330a1f23696f46c79cc875927f66
This can speed up performance significantly.
Only support OS X for now because on Linux we have to adjust inode
limits to support mozilla-central and I don't feel like scope bloating.
--HG--
extra : commitid : 6M3YsqJAdR8
extra : rebase_source : 042ede08de060ff16b9bb2a009727ac73b5f928f
extra : amend_source : 5c91544cf91b460d4c25ce8334759fcd56326942
extra : histedit_source : 8bdd4099ad9a1113734ecf0fc0ddaa9ec359dc56
bundleclone is the Mozilla-specific precursor to the "clonebundles"
feature in Mercurial 3.6. Change the wizard to recognize when
clonebundles is available and to favor it. Activating clonebundles will
also disable bundleclone, as bundleclone is redundant with clonebundles.
(If both are enabled, bundleclone detects this and gets out of the way.)
--HG--
extra : rebase_source : 989a2ed683ca6a3cc31a3ef4e2803d0b8bf19f09
We only support the last 4 releases of Mercurial. 3.6 is out, which
means we only support down to 3.3.
--HG--
extra : rebase_source : 2b097b5cdbbe87efcf2676ac83b5539298604aac
Main reason for recommending 3.5 is bundle2. The protocol is faster and
we can do things like put extra data in the server exchange. It also
enables generaldelta to be exchanged without pain.
And of course there are tons of performance improvements and bug fixes.
--HG--
extra : rebase_source : 82e4e6416cb16d2d4b5c795cd567e766c3c8b7f7
All extensions in version-control-tools should support Bugzilla API Keys
now. MozReview requires them. We'll likely remove support for passwords
and cookie auth in the future. This commit transitions the Mercurial
setup wizard to API Keys exclusively.
DONTBUILD (NPOTB)
--HG--
extra : commitid : DM33vGsljQz
extra : rebase_source : 047cd10eb976719ce94478a9a08363dbcd86ae68
The certificate was updated to a SHA-2 certificate.
DONTBUILD (NPOTB)
--HG--
extra : commitid : 11QMFkjpCTa
extra : rebase_source : b9e005c278ef223066a58d78029ccbb4a1c1c9e4
extra : amend_source : bb1bcd8003fa644ce4c8876ec2aa7ac20790ad9e
Having multiple version-control-tools repositories references in your
hgrc could lead to one repository importing code from another, depending
on how sys.path modification works from version-control-tools
repositories. Detect it and issue a warning.
--HG--
extra : commitid : 2rfQARjGfu9
extra : rebase_source : 01d221cdc4b462cb52041d1d18f121e09b23125c
extra : amend_source : bac3fd876d6c8f0a3a94f4ae25950f5971dcb869
Users may want to know what the wizard is changing before they answer
prompts. Add the names of impacted config options to messages so people
can make more informed decisions.
--HG--
extra : commitid : 6p2kijj68zV
extra : rebase_source : 6468ab56fad7292ac9811c546882693aee8b5922
We want to encourage people to use reviewboard over bzexport.
--HG--
extra : commitid : 4SacVKrLjxU
extra : rebase_source : 8a466b026d273a10e09184a21d14870cfb89b959
Progress is enabled by default in Mercurial 3.5. extensions.progress
no-ops. Don't prompt for it on newer Mercurial versions.
--HG--
extra : commitid : 5zyqyanQ64o
extra : rebase_source : 9fe52282b715949b8565683ffce9a7538325b3c6
The messaging on this could be bikeshedded. Something is better than
nothing, that's for sure.
--HG--
extra : commitid : BIflUCCjwsg
extra : rebase_source : 72913ca7cfeadaf6f3efd1a277282a6786d2ba66
Before, we prompted for Bugzila username/password if the hgrc contained
credentials in cookie form. Don't do that.
--HG--
extra : commitid : 1aGcwtZzsDM
extra : rebase_source : e7a1355f44b641337adb6cefd3c90ef1bf077fbd
~/.hgrc files are likely created with the user's default umask, which
commonly gives default permissions of 644. If the hgrc config contains
sensitive information (such as Bugzilla credentials), these file
permissions could result in others stealing sensitive data.
Detect when the group and other file mode bits are set and prompt to
remove these permissions.
--HG--
extra : commitid : 6vVKQNd9yLi
extra : rebase_source : 860379bfbf8fdb4eef70b069e41a41239d93e40f
Bugzilla credentials are optional. Make this more obvious by adding
"optional" to the prompt.
Bugzilla credentials are stored in plain text. Explicitly call this out
in the help text so users can make informed decisions about whether to
capture the credentials.
--HG--
extra : commitid : DjPaYeh7oTo
extra : rebase_source : 05439551c097af9407ba15a54ab558637af4658b
configobj doesn't support semicolon comments. Why, I don't know, since
they are pretty common in ini files.
Do a static check for semicolon comments and print a more actionable
error message.
--HG--
extra : commitid : CULjsg4do9Z
extra : rebase_source : f135cc726462c73a8363ebb8c98092177cf7ffd3
extra : amend_source : 0b8c67d5b0be3bc07cf7ff4f136bb58d342368c4
An upcoming commit will display the path of the config file in the error
message. In order to do this, the calling scope needs to know the path
to the config file.
--HG--
extra : commitid : 5CDrz1hQOOA
extra : rebase_source : 1c29359c9e98b15c99de9efb30add0b0a108aa59
extra : amend_source : 1aa2c504ce72fbdeae1da2f0a6f876e37c46f5f8
They aren't needed.
--HG--
extra : commitid : 62sGc753PYY
extra : rebase_source : 8fc70f03909e693c20b756828045c4844b43325e
extra : amend_source : aa3e557c6e81824ed8788a8412f7ead09731f42d
The creation of the directory used to be handled by the running of the
wizard. Now, since we touch the state file first, we need to create the
directory manually. Derp.
--HG--
extra : commitid : AyZNZgiy6c9
extra : rebase_source : 6deae7653be73f1245a0e1df924f05ccf9cc289c
extra : amend_source : c078de8411e6f6ce2321a03aac071f097beab1b5
Mach grew support for docstrings in `mach help` output a few weeks ago.
Add a docstring for `mach mercurial-setup`.
--HG--
extra : commitid : G9xQeLS1Lo5
extra : rebase_source : 2dca87da7e973317dbce7f715d48c7109f65f922
While not common, there are a few cases where `mach mercurial-setup`
fails. When checking the last time this command was executed, it is
sufficient to record the intent to run the command, not the fact that it
executed to completion.
--HG--
extra : commitid : K9SMNXWNIgl
extra : rebase_source : 3275e2162e0e4cf4e00c66271458b08b4f2e5f7e
This removes ambiguity as to which modules are being imported, making
import slightly faster as Python doesn't need to test so many
directories for file presence.
All files should already be using absolute imports because mach command
modules aren't imported to the package they belong to: they instead
belong to the "mach" package. So relative imports shouldn't have been
used.
--HG--
extra : commitid : 6tFME1KKfTD
extra : rebase_source : 78728f82f5487281620e00c2a8004cd5e1968087