Sat, 24 Jun 2017 23:22:45 +0900 dagop: factor out pfunc from revancestors() generator
Yuya Nishihara <yuya@tcha.org> [Sat, 24 Jun 2017 23:22:45 +0900] rev 33089
dagop: factor out pfunc from revancestors() generator This generator will be reused for tracking descendants with depth limit. # ancestors(tip) using hg repo 0) 0.065868 1) 0.068976
Fri, 23 Jun 2017 21:15:10 +0900 dagop: use smartset.min() in revdescendants() generator
Yuya Nishihara <yuya@tcha.org> [Fri, 23 Jun 2017 21:15:10 +0900] rev 33088
dagop: use smartset.min() in revdescendants() generator All callers pass the result of revset.getset(), which should be a smartset.
Tue, 20 Jun 2017 22:26:52 +0900 dagop: change revdescendants() to include all root revisions
Yuya Nishihara <yuya@tcha.org> [Tue, 20 Jun 2017 22:26:52 +0900] rev 33087
dagop: change revdescendants() to include all root revisions Prepares for adding depth support. I want to process depth=0 in revdescendants() to make things simpler. only() also calls dagop.revdescendants(), but it filters out root revisions explicitly. So this should cause no problem. # descendants(0) using hg repo 0) 0.052380 1) 0.051226 # only(tip) using hg repo 0) 0.001433 1) 0.001425
Tue, 20 Jun 2017 22:11:23 +0900 test-revset: add a few more tests of descendants()
Yuya Nishihara <yuya@tcha.org> [Tue, 20 Jun 2017 22:11:23 +0900] rev 33086
test-revset: add a few more tests of descendants() I'll add depth support to descendants().
Sun, 18 Jun 2017 17:02:03 +0900 dagop: unnest inner generator of revdescendants()
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 17:02:03 +0900] rev 33085
dagop: unnest inner generator of revdescendants() This just moves iterate() to module-level function.
Sun, 25 Jun 2017 00:14:48 +0900 smartset: fix default value of abstractsmartset.sort()
Yuya Nishihara <yuya@tcha.org> [Sun, 25 Jun 2017 00:14:48 +0900] rev 33084
smartset: fix default value of abstractsmartset.sort() It's unused, but it shouldn't lie.
Mon, 26 Jun 2017 03:47:11 +0900 keyword: wrap functions only once at loading keyword extension
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:47:11 +0900] rev 33083
keyword: wrap functions only once at loading keyword extension Before this patch, some functions are wrapped in reposetup(), but this causes redundant nested wrapping, if two ore more repositories enable keyword extension (e.g. hgweb serves multiple repositories). Now, there is no need to define these wrapper functions in reposetup(), because previous patches made them not directly refer to kwtemplater instanciated in reposetup(). This patch factors these wrapper functions out from reposetup(), and uses them to wrap functions only at once at loading keyword extension.
Mon, 26 Jun 2017 03:46:17 +0900 keyword: use _keywordkwt of repository instead of kwtools['templater']
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:46:17 +0900] rev 33082
keyword: use _keywordkwt of repository instead of kwtools['templater'] Now, kwtemplater instance can be obtained via _keywordkwt property of repository.
Mon, 26 Jun 2017 03:44:50 +0900 keyword: obtain kwtemplater instance via repository at runtime
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:44:50 +0900] rev 33081
keyword: obtain kwtemplater instance via repository at runtime Wrapper functions of keyword extension are defined in reposetup(), because they refer to kwtemplater instantiated in reposetup(). This patch makes them obtain kwtemplater instance via repository at runtime. For reviewability, this patch focuses on wrapper functions, which handle generator. This is a part of preparations for defining them statically.
Mon, 26 Jun 2017 03:43:47 +0900 keyword: obtain kwtemplater instance via repository at runtime
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:43:47 +0900] rev 33080
keyword: obtain kwtemplater instance via repository at runtime Wrapper functions of keyword extension are defined in reposetup(), because they refer to kwtemplater instantiated in reposetup(). This patch makes them obtain kwtemplater instance via repository at runtime. This is a part of preparations for defining them statically.
Mon, 26 Jun 2017 03:42:17 +0900 keyword: make wrapped repository and kwtemplater refer to each other
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:42:17 +0900] rev 33079
keyword: make wrapped repository and kwtemplater refer to each other Wrapper functions of keyword extension are defined in reposetup(), because they refer to kwtemplater instantiated in reposetup(). But these functions can be defined statically, if kwtemplater can be obtained via repository at runtime. This is a part of preparations for defining them statically. To avoid cyclic reference, this patch makes kwtemplater use weakref to refer related repository instance.
Mon, 26 Jun 2017 03:40:57 +0900 keyword: add test for keyword expansion at serving multiple repositories
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:40:57 +0900] rev 33078
keyword: add test for keyword expansion at serving multiple repositories This is safety for subsequent (and future) patches, which change function wrapping.
Mon, 26 Jun 2017 03:40:12 +0900 keyword: make comparison webcommand suppress keyword expansion
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:40:12 +0900] rev 33077
keyword: make comparison webcommand suppress keyword expansion Before this patch, diff in "comparison" webcommand doesn't suppress keyword expansion as same as diff output of other webcommands.
Mon, 26 Jun 2017 03:40:06 +0900 keyword: restore kwtemplater.match at the end of wrapped webcommands
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:40:06 +0900] rev 33076
keyword: restore kwtemplater.match at the end of wrapped webcommands Before this patch, kwweb_skip doesn't restore kwtemplater.match after wrapped webcommands. This suppresses keyword expansion at wrapped webcommands. Typical usecase of this issue is "file" webcommand after annotate, changeset, filediff or so on. To ensure kwtemplater.match=util.never while original webcommand running, this patch makes kwweb_skip yield values returned by it, because it returns generator object.
Mon, 26 Jun 2017 03:38:12 +0900 keyword: restore kwtemplater.restrict at the end of wrapped patch.diff
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 26 Jun 2017 03:38:12 +0900] rev 33075
keyword: restore kwtemplater.restrict at the end of wrapped patch.diff Before this patch, kwdiff doesn't restore kwtemplater.restrict after invocation of wrapped patch.diff(). This suppresses keyword expansion at subsequent filelog.read(). Typical usecase of this issue is "hg cat" after "hg diff" with command server. In this case, kwtemplater.restrict=True is kept in command server process even after "hg diff". To ensure kwtemplater.restrict=True while original patch.diff() running, this patch makes kwdiff() yield values returned by it, because it returns generator object. Strictly speaking, if filelog.read() is invoked before completely evaluating the result of previous patch.diff(), keyword expansion is still suppressed, because kwtemplater.restrict isn't restored yet. But this fixing should be reasonable enough, because patch.diff() is consumed immediately, AFAIK.
Mon, 26 Jun 2017 22:27:34 +0900 debugrevlog: align chain length, reach, and compression ratio
Yuya Nishihara <yuya@tcha.org> [Mon, 26 Jun 2017 22:27:34 +0900] rev 33074
debugrevlog: align chain length, reach, and compression ratio I think this is what the max(...) exists for.
(0) -30000 -10000 -3000 -1000 -300 -100 -16 +16 +100 +300 +1000 +3000 +10000 tip