sapling/mercurial
Gregory Szorc 216aba88f8 hg: always create new localrepository instance
cachedlocalrepo.copy() didn't actually create new localrepository
instances. This meant that the new thread isolation code in hgweb wasn't
actually using separate localrepository instances, even though it was
properly using separate cachedlocalrepo instances.

Because the behavior of the API changed, the single caller in hgweb had
to be refactored to always call _webifyrepo() or it may not have used
the proper filter.

I confirmed via print() debugging that id(repo) is in fact different on
each thread. This was not the case before.

For reasons I can't yet explain, this does not fix issue4756. I suspect
there is shared cache somewhere that isn't thread safe.
2015-09-12 11:31:56 -07:00
..
default.d mergetools: drop incorrect quoting of diffargs variables 2015-01-28 02:28:38 +01:00
help templater: switch ctx of list expression to rev of revset() (BC) 2015-09-12 00:21:41 +09:00
hgweb hg: always create new localrepository instance 2015-09-12 11:31:56 -07:00
httpclient global: mass rewrite to use modern exception syntax 2015-06-23 22:20:08 -07:00
pure osutil: remove Python 2.4 errno conversion workaround 2015-06-22 10:11:31 -07:00
templates templater: add new docheader/footer components for XML (issue4135) 2015-08-26 16:27:14 -05:00
__init__.py
ancestor.py ancestor: use absolute_import 2015-08-07 19:45:48 -07:00
archival.py archival: drop self.filename - deprecated in py2.6 2015-09-04 05:54:35 -04:00
base85.c base85: fix comparison of an int and a long 2015-08-21 14:29:42 -04:00
bdiff.c bdiff: avoid a memory error on malloc failure 2013-10-30 16:03:42 -05:00
bookmarks.py devel-warn: issue a warning when writing bookmarks without holding the wlock 2015-08-01 05:43:39 -07:00
branchmap.py branchmap: use absolute_import 2015-08-07 19:51:55 -07:00
bundle2.py bundle2: don't try to recover from a GeneratorExit (issue4785) 2015-09-01 15:47:33 -04:00
bundlerepo.py bundlerepo: mark internal-only config variable 2015-06-25 17:43:24 -05:00
byterange.py global: mass rewrite to use modern exception syntax 2015-06-23 22:20:08 -07:00
changegroup.py generaldelta: mark experimental reordering option 2015-06-25 17:43:52 -05:00
changelog.py reachableroots: construct and sort baseset in revset module 2015-08-28 11:14:24 +09:00
cmdutil.py extdiff: enable -I/-X with --patch 2015-09-09 22:27:48 -04:00
commands.py help: fix help argument parsing and documentation 2015-09-10 20:22:37 -04:00
commandserver.py commandserver: mark developer-only logging option 2015-06-25 17:44:15 -05:00
config.py config: use absolute_import 2015-08-08 00:28:53 -07:00
context.py merge: make merge.preferancestor type and default consistent 2015-06-25 17:54:55 -05:00
copies.py copies: use absolute_import 2015-08-08 00:41:13 -07:00
crecord.py crecord: throws error instead of crashing for large diffs 2015-07-17 13:44:01 -07:00
dagparser.py dagparser: use absolute_import 2015-08-08 19:03:34 -07:00
dagutil.py dagutil: use absolute_import 2015-08-08 19:04:09 -07:00
demandimport.py demandimport: use absolute_import 2015-08-08 19:05:28 -07:00
diffhelpers.c diffhelpers: fix botched return statement from e48d70075d8a 2015-01-28 13:34:20 -05:00
dirs.c dirs._addpath: reinstate use of Py_CLEAR 2015-04-07 20:43:04 -07:00
dirstate.py dirstate: ensure mv source is marked deleted when walking icasefs (issue4760) 2015-07-27 21:27:24 -04:00
discovery.py discovery: use absolute_import 2015-08-08 19:07:11 -07:00
dispatch.py dispatch: use the right context manager to deactivate demandimport 2015-09-13 16:30:21 -04: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 global: mass rewrite to use modern exception syntax 2015-06-23 22:20:08 -07:00
error.py error: use absolute_import 2015-08-08 19:09:09 -07:00
exchange.py exchange: allow fallbackheads to use lazy set behavior 2015-09-07 17:08:35 -07:00
exewrapper.c exewrapper: adapt for legacy HackableMercurial 2012-08-07 11:04:41 +02:00
extensions.py extensions: use absolute_import 2015-08-08 19:13:14 -07:00
fancyopts.py fancyopts: use absolute_import 2015-08-08 19:16:16 -07:00
filelog.py filelog: use absolute_import 2015-08-08 19:11:42 -07:00
filemerge.py filemerge: add non-interactive :merge-local and :merge-other 2015-09-10 09:41:11 -04:00
fileset.py fileset: handle error of string unescaping 2015-09-10 23:32:36 +09:00
formatter.py formatter: mark developer options 2015-06-25 17:49:11 -05:00
graphmod.py graphmod: compute slow revset query once prior to reachableroots (issue4782) 2015-09-08 23:00:44 +09:00
hbisect.py hbisect: use absolute_import 2015-08-08 19:22:11 -07:00
help.py help: fix help argument parsing and documentation 2015-09-10 20:22:37 -04:00
hg.py hg: always create new localrepository instance 2015-09-12 11:31:56 -07:00
hook.py hook: use absolute_import 2015-08-08 19:24:40 -07:00
httpconnection.py http2: mark experimental and developer options 2015-06-25 17:48:43 -05:00
httppeer.py httppeer: use absolute_import 2015-08-08 19:35:28 -07:00
i18n.py i18n: use absolute_import 2015-08-08 19:28:49 -07:00
keepalive.py global: mass rewrite to use modern exception syntax 2015-06-23 22:20:08 -07:00
localrepo.py localrepo: move dirstate validate function to class scope 2015-09-02 22:05:23 -07:00
lock.py lock: make trylock private 2015-08-24 13:26:10 -05:00
lsprof.py profiling: replace '+' markup of nested lines with indentation 2013-02-08 22:54:48 +01:00
lsprofcalltree.py
mail.py spelling: behaviour -> behavior 2015-08-28 10:53:55 -04:00
manifest.c lazymanifest: prevent leak when updating an entry more than once 2015-04-11 11:56:21 -04:00
manifest.py manifest: switch add() to heapq.merge (available in Py2.6+) 2015-09-04 05:57:58 -04:00
match.py match: fix a caseonly rename + explicit path commit on icasefs (issue4768) 2015-08-06 21:00:16 -04:00
mdiff.py mdiff: add helper for making deltas which replace the full text of a revision 2015-01-21 16:35:09 -05:00
merge.py merge: make merge.preferancestor type and default consistent 2015-06-25 17:54:55 -05:00
minirst.py minirst: establish leveling for nested definitions 2015-09-10 10:48:20 -04:00
mpatch.c mpatch: rewrite pointer overflow checks 2013-12-11 18:33:42 -06:00
namespaces.py namespaces: use absolute_import 2015-08-08 19:42:58 -07:00
node.py node: use absolute_import 2015-08-08 19:43:24 -07:00
obsolete.py obsolete: improve English of successorssets 2015-09-08 20:44:18 -04:00
osutil.c osutil: mark end of string with null char, not 0 2015-03-25 16:21:58 -07:00
parser.py parser: move unescape helper from templater 2015-09-10 23:25:10 +09:00
parsers.c parsers: use PyTuple_New and SET_ITEM to construct metadata pair of markers 2015-09-05 16:50:35 +09:00
patch.py global: mass rewrite to use modern octal syntax 2015-06-23 22:30:33 -07:00
pathencode.c pathencode: check result of .digest() method in sha1hash 2015-08-18 16:32:41 -04:00
pathutil.py pathutil: use absolute_import 2015-08-08 19:45:15 -07:00
peer.py peer: use absolute_import 2015-08-08 19:45:45 -07:00
phases.py phases: use absolute_import 2015-08-08 19:46:33 -07:00
posix.py posix: use absolute_import 2015-08-08 19:56:58 -07:00
progress.py progress: mark experimental option 2015-06-25 17:56:54 -05:00
pushkey.py pushkey: use absolute_import 2015-08-08 19:57:27 -07:00
pvec.py pvec: replace 'ctx._repo' with 'ctx.repo()' 2015-03-12 23:18:20 -04:00
py3kcompat.py py3kcompat: drop unused export 2014-05-13 15:22:36 -05:00
repair.py strip: use the 'finally: tr.release' pattern during stripping 2015-08-08 14:50:03 -07:00
repoview.py repoview: use absolute_import 2015-08-08 19:58:05 -07:00
revlog.py revlog: add an aggressivemergedelta option 2015-08-30 14:03:32 -07:00
revset.py revset: handle error of string unescaping 2015-09-10 23:29:55 +09:00
scmposix.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
scmutil.py scmutil.readonlyvfs: implement join 2015-09-02 22:05:58 -07:00
scmwindows.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
setdiscovery.py setdiscovery: use absolute_import 2015-08-08 19:53:25 -07:00
similar.py cleanup: eradicate long lines 2012-05-12 15:54:54 +02:00
simplemerge.py simplemerge: enable option to resolve conflicts one way 2015-08-12 08:53:01 -04:00
sshpeer.py sshpeer: use absolute_import 2015-08-08 19:55:01 -07:00
sshserver.py sshserver: use absolute_import 2015-08-08 19:55:39 -07:00
sslutil.py sslutil: use absolute_import 2015-08-08 19:56:22 -07:00
statichttprepo.py statichttprepo: use absolute_import 2015-08-08 20:11:08 -07:00
store.py global: mass rewrite to use modern octal syntax 2015-06-23 22:30:33 -07:00
strutil.py strutil: use absolute_import 2015-08-08 20:01:40 -07:00
subrepo.py subrepo: mark internal-only option 2015-06-25 17:57:26 -05:00
tagmerge.py tagmerge: use absolute_import 2015-08-08 20:10:46 -07:00
tags.py tags: use absolute_import 2015-08-08 20:16:56 -07:00
templatefilters.py templater: port localdate filter to a function 2015-09-01 19:15:16 +09:00
templatekw.py templater: switch ctx of list expression to rev of revset() (BC) 2015-09-12 00:21:41 +09:00
templater.py templater: switch ctx of list expression to rev of revset() (BC) 2015-09-12 00:21:41 +09:00
transaction.py transaction: use absolute_import 2015-08-08 20:10:23 -07:00
treediscovery.py treediscovery: use absolute_import 2015-08-08 20:11:56 -07:00
ui.py ui: improve docs on ui.log 2015-09-10 10:50:03 -04:00
unionrepo.py unionrepo: take delta base in account with building unified revlog 2015-09-10 16:14:39 -07:00
url.py http2: mark experimental and developer options 2015-06-25 17:48:43 -05:00
util.h util: fix the check for non-C99 compilers (issue4605) 2015-04-20 22:21:57 -05:00
util.py util: capitalize Python in MBTextWrapper._wrap_chunks comment 2015-09-08 15:32:20 -04:00
verify.py censor: mark experimental option 2015-06-25 17:56:26 -05:00
win32.py win32: use absolute_import 2015-08-08 18:52:59 -07:00
windows.py global: mass rewrite to use modern octal syntax 2015-06-23 22:30:33 -07:00
wireproto.py wireproto: use absolute_import 2015-08-08 18:53:17 -07:00
worker.py worker: use absolute_import 2015-08-08 18:44:41 -07:00