mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 22:01:30 +00:00
45c880523f
Having not configured or out-of-date tools benefits nobody. It slows people down. Version control tools are an integral part of working on Firefox. It is important for version control tools to be configured optimally and to be continuously updated so they stay optimal. The `mach mercurial-setup` command exists to optimally configure Mercurial for working on Firefox and other Mozilla projects. This commit adds a pre-dispatch handler to mach that will verify Mercurial is in a happy state. If `mach mercurial-setup` has never executed, it will complain. If `mach mercurial-setup` hasn't been executed in the past 2 weeks, it will complain. Yes, aborting command execution and forcing people to context switch to run `mach mercurial-setup` is annoying. First, we have carved out several exceptions to this behavior, including detection for running in automation, on the machines of curmudgeons, when Mercurial isn't being used, and from non-interactive processes. Second, I argue that people ignore optional notifications and that having persistently poorly-configured tools is worse than a single context switch at most every 2 weeks. Therefore, the heavyhanded approach is justified. In addition, if we did support a non-fatal notification, we would introduce the problem of extra output from commands. If anyone was e.g. parsing mach output, we could very likely break those systems. These cases should be caught by the isatty() check or be running in a context with MOZ_AUTOMATION set. But you never know. --HG-- extra : commitid : AWLag0bpQOY extra : rebase_source : fba19b918e9eadc6d5976c10d82974fb7e835e9d |
||
---|---|---|
.. | ||
annotationProcessors | ||
autoconf | ||
clang-plugin | ||
compare-mozconfig | ||
docs | ||
macosx | ||
mobile | ||
package/mac_osx | ||
pgo | ||
pymake | ||
release | ||
sanitizers | ||
stlport | ||
unix | ||
util | ||
valgrind | ||
win32 | ||
win64 | ||
__init__.py | ||
.lldbinit.in | ||
appini_header.py | ||
application.ini | ||
automation-build.mk | ||
automation.py.in | ||
automationutils.py | ||
binary-location.mk | ||
buildconfig.py | ||
checksums.py | ||
defines.sh | ||
dumbmake-dependencies | ||
dumpScreen.py | ||
gecko_templates.mozbuild | ||
gen_mach_buildprops.py | ||
gen_test_packages_manifest.py | ||
genrc.sh | ||
gyp.mozbuild | ||
mach_bootstrap.py | ||
Makefile.in | ||
moz-automation.mk | ||
moz.build | ||
mozconfig.automation | ||
mozconfig.cache | ||
mozconfig.common | ||
mozconfig.common.override | ||
mozconfig.vs-common | ||
mozconfig.win-common | ||
msys-perl-wrapper | ||
qemu-wrap | ||
sccache.mk | ||
subconfigure.py | ||
templates.mozbuild | ||
update-settings.ini | ||
upload.py | ||
virtualenv_packages.txt |