sapling/mercurial
Pierre-Yves David 3845a0edb5 discovery: run discovery on filtered repository
We have been running discovery on unfiltered repository for quite some time.
This was aimed at two things:

- save some bandwith by prevent the repushing of common but hidden changesets
- allow phases changes on secret/hidden changeset on bare push.

The cost of this unfiltered discovery combined with evolution is actually really
high. Evolution likely create thousand of hidden heads, and the discovery is
going to try to discovery if each of them are common or not. For example,
pushing from my development mercurial repository implies 17 discovery
round-trip.

The benefit are rare corner cases while the drawback are massive. So we run the
discovery on a filtered repository again.

We add some hack to detect remote heads that are known locally and adds them to
the common set anyway, so the good behavior of most of the corner case should
remains. But this will not work in all cases.

This bring my discovery phase back from 17 round-trips to 1 or 2.
2015-01-07 00:07:29 -08:00
..
default.d config: move mergetools configuration from contrib to default configuration 2014-10-19 03:22:23 +02:00
help revset: introduce new operator "##" to concatenate strings/symbols at runtime 2015-01-06 23:46:18 +09:00
hgweb hgweb: send proper HTTP response after uncaught exception 2014-11-28 10:59:02 -08:00
httpclient httpclient: import 4bb625347d4a to provide SSL wrapper injection 2013-09-20 09:15:09 -04:00
pure parsers: inline fields of dirstate values in C version 2014-05-27 14:27:41 -07:00
templates hgweb: fix diffstat links in paper/changeset.tmpl 2015-01-10 18:00:57 +08:00
__init__.py
ancestor.py ancestor: add a way to remove ancestors of bases from a given set 2014-11-14 19:40:30 -08:00
archival.py archive: store number of changes since latest tag as well 2014-12-12 15:27:13 -08:00
base85.c base85: cast Py_ssize_t values to int (issue3481) 2012-06-04 16:59:34 +02:00
bdiff.c bdiff: avoid a memory error on malloc failure 2013-10-30 16:03:42 -05:00
bookmarks.py bookmarks: fix formatting of exchange message (issue4439) 2014-11-05 17:25:00 +00:00
branchmap.py branchmap: add seek() to end of file before calling tell() on append open() 2015-01-10 12:00:03 -05:00
bundle2.py bundle2: transmit exception during part generation 2014-10-15 03:52:20 -07:00
bundlerepo.py incoming: handle phases the same as pull 2014-12-18 12:33:17 -08:00
byterange.py byterange: remove now-unused sys import 2013-02-09 07:44:22 -06:00
changegroup.py changegroup: fix file linkrevs during reorders (issue4462) 2014-11-20 16:30:57 -08:00
changelog.py changelog: use headrevsfiltered 2014-10-26 12:14:12 +01:00
cmdutil.py forget: don't report rejected files as forgotten as well 2015-01-11 23:25:23 -05:00
commands.py debugdirstate: don't hide date field with --nodate, just show 'set'/'unset' 2015-01-09 18:38:02 +01:00
commandserver.py cmdserver: include pid of server handling requests in hello message 2014-10-18 12:24:50 +09:00
config.py config: use util.re.compile instead of util.compilere 2014-07-15 14:50:58 -07:00
context.py status: don't override _buildstatus() in workingcommitctx 2015-01-08 13:29:06 -08:00
copies.py amend: fix amending rename commit with diverged topologies (issue4405) 2014-10-16 06:35:06 -07:00
dagparser.py en-us: labeled 2012-08-17 13:58:18 -07:00
dagutil.py dagutil: fix id/ix typos in docstrings 2014-10-24 16:26:44 -04:00
demandimport.py demandimport: blacklist distutils.msvc9compiler (issue4475) 2014-12-22 17:27:31 -05:00
diffhelpers.c diffhelpers: use Py_ssize_t in testhunk() 2012-05-12 14:00:51 +02:00
dirs.c parsers: inline fields of dirstate values in C version 2014-05-27 14:27:41 -07:00
dirstate.py status: update and move documentation of status types to status class 2014-10-10 10:14:35 -07:00
discovery.py discovery: prevent crash on unknown remote heads with old repo (issue4337) 2014-08-14 16:26:41 -07:00
dispatch.py dispatch: check shell alias again after loading extensions (issue4355) 2014-09-10 00:41:44 +09: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 encoding: add hfsignoreclean to clean out HFS-ignored characters 2014-12-16 13:06:41 -05:00
error.py hook: raise a more specialized HookAbort exception when a hook fails 2014-11-29 19:13:35 -08:00
exchange.py discovery: run discovery on filtered repository 2015-01-07 00:07:29 -08:00
exewrapper.c exewrapper: adapt for legacy HackableMercurial 2012-08-07 11:04:41 +02:00
extensions.py version: show enabled extensions (issue4209) 2014-06-10 13:44:37 +03:00
fancyopts.py fancyopts: restore use of callable() since it was readded in Python 3.2 2014-06-23 09:24:16 -04:00
filelog.py filelog: censored files compare against empty data, have 0 size 2014-09-14 20:32:34 -04:00
filemerge.py filemerge: switch the default name for internal tools from internal:x to :x 2014-09-28 17:15:28 +02:00
fileset.py i18n: add i18n comment to error messages of filesets predicates 2014-11-01 02:43:08 +09:00
formatter.py formatter: add general way to switch hex/short functions 2014-10-03 22:20:02 +09:00
graphmod.py dagwalker: drop a useless intermediate variable 2014-10-08 02:43:51 -07:00
hbisect.py bisect: report "both good and bad" as such, not as "not directly related" 2013-11-10 18:51:21 +01:00
help.py help: don't search randomly for help data - trust util.datapath 2014-09-28 16:57:47 +02:00
hg.py config: use the same hgrc for a cloned repo as for an uninitted repo 2014-10-06 16:35:02 -04:00
hook.py merge with stable 2014-12-01 19:34:11 -06:00
httpconnection.py httpconnection: properly inject ssl_wrap_socket into httpclient (issue4038) 2013-09-20 09:16:07 -04:00
httppeer.py httppeer: close the temporary bundle file after two-way streaming it 2014-10-25 21:34:49 -04:00
i18n.py i18n: cache the result of every gettext call 2014-10-17 13:52:10 -04:00
ignore.py ignore: process hgignore files in deterministic order 2012-12-17 15:57:02 -08:00
keepalive.py util: move md5 back next to sha1 and allow to call it without an argument 2014-09-24 16:00:47 +09:00
localrepo.py pushkey: gracefully handle prepushkey hook failure (issue4455) 2014-11-29 19:17:47 -08:00
lock.py lock: while releasing, unlink lockfile even if the release function throws 2014-10-16 19:15:51 -07:00
lsprof.py profiling: replace '+' markup of nested lines with indentation 2013-02-08 22:54:48 +01:00
lsprofcalltree.py
mail.py mail: actually use the verifycert config value 2014-11-05 18:31:39 +00:00
manifest.py manifest: drop withflags() method, which is now unused 2015-01-07 15:55:02 -05:00
match.py match: remove unnecessary setting of self._always 2014-09-30 15:58:08 -07:00
mdiff.py mdiff.unidiff: add support for noprefix 2014-11-12 23:29:14 -08:00
merge.py merge: before cd/dc prompt, check that changed side really changed 2014-12-01 02:30:21 +01:00
minirst.py help: show all nested subsections of a section with hg help foo.section 2014-10-06 07:35:53 -04:00
mpatch.c mpatch: rewrite pointer overflow checks 2013-12-11 18:33:42 -06:00
namespaces.py namespaces: add method to return a list of nodes for a given name 2014-12-15 14:46:04 -08:00
node.py
obsolete.py readmarkers: add a SHA256 fixme note 2015-01-11 16:46:13 -06:00
osutil.c osutil: tab damage, how i hate thee 2012-12-03 13:17:01 -08:00
parser.py parser: allow passing a lookup function to a tokenizer 2014-03-18 17:17:23 -05:00
parsers.c parsers: introduce headrevsfiltered in C extension 2014-10-26 12:14:10 +01:00
patch.py trydiff: replace dodiff=True/'binary' by binarydiff=False/True 2015-01-07 11:02:10 -08:00
pathencode.c pathencode: eliminate signed integer warnings 2014-02-19 13:11:24 -08:00
pathutil.py pathauditor: check for Windows shortname aliases 2014-12-18 14:18:28 -06:00
peer.py peer: delete double definition of method peer 2012-07-28 22:36:22 +02:00
phases.py phases: inform transaction-related hooks that a phase was moved 2014-10-12 08:03:20 -07:00
posix.py darwin: omit ignorable codepoints when normcase()ing a file path 2014-12-16 13:07:10 -05:00
pushkey.py obsolete: add exchange option 2014-10-14 13:26:01 -07:00
pvec.py pvec: use the correct name for an identifier 2013-04-12 17:20:09 -07:00
py3kcompat.py py3kcompat: drop unused export 2014-05-13 15:22:36 -05:00
repair.py bundles: do not overwrite existing backup bundles (BC) 2015-01-09 10:52:14 -08:00
repoview.py repoview: remove hiddencache verification 2014-10-06 07:29:40 -07:00
revlog.py revlog: move references to revlog.hash to inside the revlog class 2014-09-24 15:14:44 -04:00
revset.py revset: check for collisions between alias argument names in the declaration 2015-01-10 23:18:11 +09:00
scmposix.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
scmutil.py status: update and move documentation of status types to status class 2014-10-10 10:14:35 -07:00
scmwindows.py config: don't read the same config file twice 2014-09-04 21:36:35 +02:00
setdiscovery.py setdiscovery: document '_takequicksample' 2015-01-07 20:44:20 -08:00
similar.py cleanup: eradicate long lines 2012-05-12 15:54:54 +02:00
simplemerge.py simplemerge: remove dead code 2014-08-07 12:51:45 -04:00
sshpeer.py sshpeer: more thorough shell quoting 2014-12-29 14:27:02 -06:00
sshserver.py changegroup: rename bundle-related functions and classes 2014-09-02 12:11:36 +02:00
sslutil.py https: support tls sni (server name indication) for https urls (issue3090) 2015-01-12 18:01:20 -07:00
statichttprepo.py namespaces: remove weakref; always pass in repo 2014-12-14 19:11:44 -08:00
store.py store: drop unused existing list 2014-04-03 12:59:12 -05:00
strutil.py
subrepo.py subrepo: use separate instances of empty lists in status 2014-10-11 22:43:14 -07:00
tagmerge.py filemerge: add internal:tagmerge merge tool 2014-06-26 01:20:25 +02:00
tags.py tags: introduce _readtaghist function 2014-06-28 01:42:39 +02:00
templatefilters.py templater: add count template filter, plus tests 2014-09-09 22:14:13 +09:00
templatekw.py templatekw: update namespace calls 2014-12-21 14:01:52 -08:00
templater.py templater: don't overwrite the keyword mapping in runsymbol() (issue4362) 2014-11-03 12:08:03 -05:00
transaction.py transaction: support for callbacks during abort 2015-01-06 21:56:33 -08:00
treediscovery.py discovery: stop using nodemap for membership testing 2013-11-15 23:28:43 -05:00
ui.py ui: separate option to show prompt echo, enabled only in tests (issue4417) 2014-10-21 23:16:46 +09:00
unionrepo.py config: set a 'source' in most cases where config don't come from file but code 2014-03-19 02:45:14 +01:00
url.py https: support tls sni (server name indication) for https urls (issue3090) 2015-01-12 18:01:20 -07:00
util.h util.h: declare dirstateTupleType variable instead of defining it 2014-07-03 19:05:04 +02:00
util.py unpacker: check the right exception type for 2.4 2015-01-13 16:15:02 -08:00
verify.py verify: report censored nodes if configured policy is abort 2014-10-14 16:16:04 -04:00
win32.py win32: backout 6891e5c66508 2014-05-03 10:33:54 +02:00
windows.py windows: quote the specified string only when it has to be quoted 2014-12-25 23:33:26 +09:00
wireproto.py discovery: run discovery on filtered repository 2015-01-07 00:07:29 -08:00
worker.py cleanup: avoid _ for local unused tmp variables - that is reserved for i18n 2014-08-15 16:20:47 +02:00