sapling/mercurial
Jun Wu 414c6943ee commandserver: use selectors2
Previously, commandserver was using select.select. That could have issue if
_sock.fileno() >= FD_SETSIZE (usually 1024), which raises:

  ValueError: filedescriptor out of range in select()

We got that in production today, although it's the code opening that many
files to blame, it seems better for commandserver to work in this case.
There are multiple way to "solve" it, like preserving a fd with a small
number and swap it with sock using dup2(). But upgrading to a modern
selector supported by the system seems to be the most correct way.
2017-07-14 20:26:21 -07:00
..
cext parsers: fix invariant bug in find_deepest (issue5623) 2017-07-14 13:48:17 +02:00
cffi cffi: remove superfluous "if True" blocks 2017-05-02 21:45:10 +09:00
default.d mergetools.rc: find OSX FileMerge in the new location inside Xcode 4.3 2015-10-16 11:37:34 +02:00
help merge with stable 2017-07-05 11:55:26 -04:00
hgweb hgweb: use ui._unset to prevent a warning in configitems 2017-07-03 13:04:35 +02:00
httpclient httpclient: update to 54868ef054d2 of httpplus 2016-06-27 11:53:50 -04:00
pure cffi: split modules from pure 2017-05-02 21:15:31 +09:00
templates hgweb: re-implement followlines UI selection using buttons 2017-07-03 13:49:03 +02:00
__init__.py selector2: vendor selector2 library 2017-07-14 20:19:46 -07:00
ancestor.py cleanup: use set literals 2017-02-10 16:56:29 -08:00
archival.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
bdiff.c bdiff: don't check border condition in loop 2016-11-20 16:56:21 -08:00
bdiff.h bdiff: split bdiff into cpy-aware and cpy-agnostic part 2016-07-13 10:46:26 +02:00
bitmanipulation.h internals: move the bitmanipulation routines into its own file 2016-06-06 13:08:13 +02:00
bookmarks.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
branchmap.py branchmap: remove use of buffer() to support Python 2.6 2017-05-13 11:58:08 -07:00
bundle2.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
bundlerepo.py configitems: register the 'bundle.mainreporoot' config 2017-06-30 03:31:26 +02:00
byterange.py pycompat: switch to util.urlreq/util.urlerr for py3 compat 2016-04-06 23:22:12 +00:00
changegroup.py changegroup: stop returning and recording added nodes in 'cg.apply' 2017-07-13 21:08:06 +02:00
changelog.py revlog: make 'storedeltachains' a "public" attribute 2016-10-14 02:25:08 +02:00
chgserver.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
cmdutil.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
color.py configitems: register the 'color.mode' config 2017-06-30 03:32:09 +02:00
commands.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
commandserver.py commandserver: use selectors2 2017-07-14 20:26:21 -07:00
compat.h compat: define ssize_t as int on 32bit Windows, silences C4142 warning 2016-07-15 23:54:56 +09:00
config.py config: make config.items() return a copy 2017-05-18 13:38:37 -07:00
configitems.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
context.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
copies.py py3: use dict.update() instead of constructing lists and adding them 2017-06-01 01:14:02 +05:30
crecord.py patch: rewrite reversehunks (issue5337) 2017-06-20 23:22:38 -07:00
dagop.py followlines: join merge parents line ranges in blockdescendants() (issue5595) 2017-07-05 13:54:53 +02:00
dagparser.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
dagutil.py dagutil: use absolute_import 2015-08-08 19:04:09 -07:00
debugcommands.py debug: add a method to check the state of, and built an SSL cert chain 2017-03-30 00:27:46 -04:00
destutil.py show: implement "stack" view 2017-07-01 22:38:42 -07:00
dirstate.py dirstate: update backup functions to take full backup filename 2017-07-12 15:24:07 -07:00
dirstateguard.py dirstate: update backup functions to take full backup filename 2017-07-12 15:24:07 -07:00
discovery.py checkheads: use a "lazyancestors" object for allfuturecommon 2017-06-05 13:44:15 +01:00
dispatch.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
dummycert.pem ssl: on OS X, use a dummy cert to trick Python/OpenSSL to use system CA certs 2014-09-26 02:19:48 +02:00
encoding.py py3: add utility to forward __str__() to __bytes__() 2017-06-24 13:48:04 +09:00
error.py py3: implement __bytes__() on most of our exception classes 2017-06-01 22:43:24 +09:00
exchange.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
exewrapper.c exewrapper: prefer HackableMercurial python if availbale 2017-03-13 12:44:13 -07:00
extensions.py dispatch: fix typo suggestion for disabled extension 2017-07-07 00:13:53 -07:00
fancyopts.py py3: slice over bytes to prevent getting it's ascii value 2017-06-25 08:36:51 +05:30
filelog.py filelog: fix parsemeta docstring 2017-05-02 22:39:14 -07:00
filemerge.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
fileset.py py3: use pycompat.bytestr so that we don't get ascii values 2017-05-29 16:21:15 +05:30
formatter.py formatter: proxy fm.context() through converter 2017-06-26 09:33:01 +09:00
graphmod.py dagop: split module hosting DAG-related algorithms from revset 2016-10-16 18:03:24 +09:00
hbisect.py bisect: move check_state into the bisect module 2016-08-24 04:25:20 +02:00
help.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
hg.py py3: check for bytes instead of str in isinstance 2017-06-22 03:20:11 +05:30
hook.py py3: convert keys of kwargs back to bytes using pycompat.byteskwargs() 2017-06-17 15:29:26 +05:30
httpconnection.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
httppeer.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
i18n.py py3: use pycompat.fsencode() to convert __file__ to bytes 2017-02-20 18:40:42 +05:30
keepalive.py keepalive: set buffering=True to do more efficient reads of headers 2017-06-02 14:08:26 -07:00
localrepo.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
lock.py lock: avoid unintentional lock acquisition at failure of readlock 2017-05-01 19:59:13 +09:00
lsprof.py lsprof: use print function 2016-01-02 11:40:53 -08:00
lsprofcalltree.py lsprofcalltree: use print function 2016-01-02 11:45:29 -08:00
mail.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
manifest.py manifest: apply checkambig=True only for root 00manifest.i 2017-06-30 01:47:48 +09:00
match.py match: remove unused negatematcher 2017-07-11 10:46:55 -07:00
mdiff.py py3: use pycompat.strkwargs() to convert kwargs keys to str 2017-06-27 00:23:32 +05:30
merge.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
mergeutil.py checkunresolved: move to new package to help avoid import cycles 2016-11-21 21:31:45 -05:00
minirst.py minirst: look for column delimiters using slices instead of indicies 2017-05-28 15:47:43 -04:00
mpatch.c mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
mpatch.h mpatch: raise MemoryError instead of mpatchError if lalloc() failed 2016-08-07 10:06:56 +09:00
namespaces.py namespaces: record and expose whether namespace is built-in 2017-06-24 14:52:15 -07:00
node.py revlog: add support for partial matching of wdir node id 2016-08-19 18:26:04 +09:00
obsolete.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
obsutil.py obsolete: closest divergent support 2017-06-30 15:27:19 +02:00
parser.py parser: preserve order of keyword arguments 2017-04-09 11:58:27 +09:00
patch.py patch: use devel.all-warnings to replace devel.all 2017-07-12 15:24:47 -07:00
pathutil.py vfs: allow to pass more argument to audit 2017-07-11 12:27:58 +02:00
peer.py py3: convert to next() function 2016-05-16 21:30:53 +00:00
phases.py phases: remove trace of addednodes in the 'phase-heads' handling 2017-07-13 21:10:55 +02:00
policy.py policy: remove unused policynoc and policynocffi constants 2017-05-02 21:45:48 +09:00
posix.py merge with stable 2017-01-04 14:52:59 -05:00
profiling.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
progress.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
pushkey.py pushkey: use absolute_import 2015-08-08 19:57:27 -07:00
pvec.py base85: proxy through util module 2017-04-26 21:56:47 +09:00
pycompat.py pycompat: move the queue related definitions below queue import 2017-06-16 03:01:22 +05:30
rcutil.py osutil: proxy through util (and platform) modules (API) 2017-04-26 22:26:28 +09:00
registrar.py configitems: add an official API for extensions to register config item 2017-06-17 13:48:20 +02:00
repair.py bookmark: use 'applychanges' in 'repair.strip' 2017-07-10 17:46:47 +02:00
repoview.py cleanup: replace uses of util.(md5|sha1|sha256|sha512) with hashlib.\1 2016-06-10 00:12:33 -04:00
revlog.py revlog: use struct.Struct instances for slight performance wins 2017-07-10 16:41:13 -04:00
revset.py revset: add experimental ancestors/descendants relation subscript 2017-07-08 13:15:17 +09:00
revsetlang.py revset: add experimental relation and subscript operators 2017-07-08 13:07:59 +09:00
scmposix.py osutil: proxy through util (and platform) modules (API) 2017-04-26 22:26:28 +09:00
scmutil.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
scmwindows.py pager: use less as a fallback on Unix 2017-04-28 20:51:14 +09:00
selectors2.py selector2: vendor selector2 library 2017-07-14 20:19:46 -07:00
server.py serve: add support for Mercurial subrepositories 2017-04-15 18:05:40 -04:00
setdiscovery.py setdiscovery: use iterbatch interface instead of batch 2016-03-01 17:44:41 -05:00
similar.py similar: remove caching from the module level 2017-01-13 11:42:36 -08:00
simplemerge.py py3: convert kwargs' keys' to str using pycompat.strkwargs() 2017-06-22 03:16:16 +05:30
smartset.py smartset: fix generatorset.last() to not return the first element (issue5609) 2017-06-27 23:50:22 +09:00
sparse.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
sshpeer.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
sshserver.py py3: replace os.environ with encoding.environ (part 2 of 5) 2016-12-18 01:46:39 +05:30
sslutil.py sslutil: inform the user about how to fix an incomplete certificate chain 2017-07-12 18:37:13 -04:00
statichttprepo.py localrepo: cache types for filtered repos (issue5043) 2017-07-01 20:51:19 -07:00
statprof.py statprof: require input file 2017-01-18 22:45:07 -08:00
store.py vfs: rename auditvfs to proxyvfs 2017-07-07 23:40:00 +09:00
streamclone.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
subrepo.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
tagmerge.py tagmerge: use workingfilectx to write merged tags 2017-07-11 16:48:15 -07:00
tags.py tag: make sure the repository is locked when tagging 2017-07-02 01:41:37 +02:00
templatefilters.py json: pass formatting options recursively 2017-06-09 21:33:15 +09:00
templatekw.py templatekw: hide {peerpaths} keyword for 4.3 2017-07-15 00:38:57 +09:00
templater.py py3: convert kwargs' keys' to str using pycompat.strkwargs() 2017-06-22 03:16:16 +05:30
transaction.py transaction: apply checkambig=True only on limited files for similarity 2017-07-04 23:13:47 +09:00
treediscovery.py error: get Abort from 'error' instead of 'util' 2015-10-08 12:55:45 -07:00
txnutil.py txnutil: factor out the logic to read file in according to HG_PENDING 2017-02-21 01:20:59 +09:00
ui.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
unionrepo.py configitems: register the 'bundle.mainreporoot' config 2017-06-30 03:31:26 +02:00
upgrade.py codemod: simplify nested withs 2017-07-13 18:31:35 -07:00
url.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
util.py histedit: extract InterventionRequired transaction handling to utils 2017-07-12 13:57:03 -07:00
verify.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
vfs.py vfs: allow to pass more argument to audit 2017-07-11 12:27:58 +02:00
win32.py win32: add a method to trigger the Crypto API to complete a certificate chain 2017-03-29 23:45:23 -04:00
windows.py windows: do not close stdout on flush() failure 2017-06-05 23:36:35 +09:00
wireproto.py codemod: register core configitems using a script 2017-07-14 14:22:40 -07:00
worker.py py3: pass str in os.sysconf() 2017-05-31 23:42:58 +05:30