Nathan Goldbaum <ngoldbau@illinois.edu> [Thu, 10 Mar 2016 17:31:38 -0600] rev 28456
pushoperation: fix language issues in docstring
Jun Wu <quark@fb.com> [Thu, 10 Mar 2016 00:19:55 +0000] rev 28455
chg: do not write pidfile
Current pidfile logic will only keep the pid of the newest server, which is
not very useful if we want to kill all servers, and will become outdated if
the server auto exits after being idle for too long.
Besides, the server-side pidfile writing logic runs before chgserver gets
confighash so it's not trivial to append confighash to pidfile basename like
we did for socket file.
This patch removes --pidfile from the command starting chgserver and switches
to an alternative way (unlink socket file) to stop the server.
Jun Wu <quark@fb.com> [Thu, 10 Mar 2016 00:12:33 +0000] rev 28454
chg: remove manual reload logic
chgserver now validates and reloads configs automatically. Manually reloading
is no longer necessary. Besides, we are deprecating pid files since the server
will periodically check its ownership of the socket file and exit if it does
not own the socket file any longer, which works more reliable than a pid file.
This patch removes the SIGHUP reload logic from both chg server and client.
Jun Wu <quark@fb.com> [Wed, 09 Mar 2016 01:20:57 +0000] rev 28453
chg: use --daemon-postexec chdir:/ instead of --cwd /
The chgserver is designed to load repo config from current directory. "--cwd /"
will prevent chgserver from loading repo config and generate a wrong
confighash, which will result in a redirect loop. This patch removes "--cwd /"
and uses "--daemon-postexec chdir:/" instead.
Jun Wu <quark@fb.com> [Wed, 09 Mar 2016 01:17:02 +0000] rev 28452
serve: add chdir command for --daemon-postexec
For chgserver, it probably needs a chdir to /. This patch adds chdir command
support for --daemon-postexec so chg client can make use of it.
Jun Wu <quark@fb.com> [Wed, 09 Mar 2016 02:07:40 +0000] rev 28451
serve: accept multiple values for --daemon-postexec
The next patch will add another postexec command: chdir, which can be used
together with unlink. This patch changes the option type of --daemon-postexec
from string to list to accept multiple commands. The error message of invalid
--daemon-postexec value is also changed to include the actual invalid value.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 27 Feb 2016 12:56:26 +0100] rev 28450
hgext: officially turn 'hgext' into a namespace package
Actually since Python 2.3, there is some way to turn top level package into
"namespace package" so that multiple subpackage installed in different part of
the path can still be imported transparently. This feature was previously
thought (at least by myself) to be only provided by some setuptool black magic.
Turning hgext into such namespace package allows third extensions to install
themselves inside the "hgext" namespace package to avoid polluting the global
python module namespace. They will now be able to do so without making it a pain
to use a Mercurial "installed" in a different way/location than these
extensions.
The only constrains is that the extension ship a 'hgext/__init__.py' containing
the same call to 'pkgutil.extend_path' and nothing else. This seems realistic.
The main question that remains is: should we introduce a dedicated namespace for
third party extension (hgext3rd?) to make a clearer distinction between what is
officially supported and what is not? If so, this will be introduced in a follow
up patch.
Matt Mackall <mpm@selenic.com> [Fri, 11 Mar 2016 15:24:27 -0600] rev 28449
merge with stable
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 11 Mar 2016 04:14:54 +0900] rev 28448
fileset: replace predicate by filesetpredicate of registrar (API)
To make all built-in predicates be known to hggettext, loading
built-in predicates by loadpredicate() should be placed before fixing
i18nfunctions but after all of predicate decorating.
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Fri, 11 Mar 2016 04:14:54 +0900] rev 28447
registrar: add filesetpredicate to mark a function as fileset predicate
filesetpredicate is used to replace fileset.predicate in subsequent
patch.
This patch also adds loadpredicate() to fileset, because this
combination helps to figure out how the name of "status caller" (or
"existing caller") predicate is put into _statuscallers (or
_existingcallers).
Listing up loadpredicate() in dispatch.extraloaders causes implicit
loading fileset predicate functions at loading (3rd party) extension.