Mon, 26 Mar 2018 13:57:22 -0700 wireproto: start to associate frame generation with a stream
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Mar 2018 13:57:22 -0700] rev 37285
wireproto: start to associate frame generation with a stream An upcoming commit will introduce "streams" into the frame-based wire protocol. In preparation for this invasive change, we introduce a basic "stream" class and have all operations that create frames also operate alongside a stream instance. Differential Revision: https://phab.mercurial-scm.org/D2906
Mon, 26 Mar 2018 13:51:22 -0700 tests: fix duplicate and failing test
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 26 Mar 2018 13:51:22 -0700] rev 37284
tests: fix duplicate and failing test There were two "testconflictingrequestid" methods. Naturally this isn't an error in Python. And by our luck, the test was failing. So we rename the test and fix it to pass. As part of this, _sendsingleframe() now takes a frame, not a string describing the frame. This is better because action at a distance can be confusing. Differential Revision: https://phab.mercurial-scm.org/D2950
Mon, 02 Apr 2018 16:47:53 -0700 debugcommands: drop offset and length from debugindex by default
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Apr 2018 16:47:53 -0700] rev 37283
debugcommands: drop offset and length from debugindex by default These fields are an implementation detail of revlog storage. As such, they are not part of the generic storage "index" interface and shouldn't be displayed by default. Because we don't have another way to display these fields, we've retained support for printing these fields via --verbose. Yes, I know we should probably be doing all this formatting using modern formatting/templater APIs. I didn't feel like scope bloating this patch. Differential Revision: https://phab.mercurial-scm.org/D3028
Mon, 02 Apr 2018 16:28:20 -0700 debugcommands: drop base revision from debugindex
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Apr 2018 16:28:20 -0700] rev 37282
debugcommands: drop base revision from debugindex Revlog index data consists of generic index metadata that will likely be implemented across all storage engines and revlog-specifc metadata. Most tests printing index data only care about the generic fields. This commit drops the printing of the base revision from `hg debugindex`. This value is an implementation detail of revlogs / delta chains. If tests are interested in verifying this implementation detail, `hg debugdeltachain` is a better command. Most tests were skipping over this field anyway. Tests that weren't looked like they were newer. So my guess is we forgot to make them skip the field to match the style of the older tests. This reinforces my belief that the base revision is not worth having in `hg debugindex`. Differential Revision: https://phab.mercurial-scm.org/D3027
Mon, 02 Apr 2018 16:24:57 -0700 tests: use debugdeltachain where appropriate
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Apr 2018 16:24:57 -0700] rev 37281
tests: use debugdeltachain where appropriate Some tests are verifying delta chain type things. This metadata has more to do with a revlog implementation details than index data, which is theoretically generic. This commit ports some tests to `hg debugdeltachain`, as it is the more appropriate debug command for looking at delta metadata. Differential Revision: https://phab.mercurial-scm.org/D3026
Mon, 02 Apr 2018 15:55:50 -0700 tests: don't use revlog paths in tests
Gregory Szorc <gregory.szorc@gmail.com> [Mon, 02 Apr 2018 15:55:50 -0700] rev 37280
tests: don't use revlog paths in tests Debug commands operating on revlogs don't need the full revlog path: they can accept the relative path to a tracked file or use -c/-m to specify a changelog or manifest. Not using the revlog path makes tests more resilient to cases where revlogs aren't being used for storage. Differential Revision: https://phab.mercurial-scm.org/D3025
Sat, 17 Mar 2018 21:03:16 +0900 templater: define interface for objects requiring unwrapvalue()
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 21:03:16 +0900] rev 37279
templater: define interface for objects requiring unwrapvalue() unwrapvalue() is changed to not return a lazy bytes generator for "wrapped" types because I want to define the tovalue() interface as such. It's a baby step to unify unwrapvalue() and _unwrapvalue().
Fri, 23 Mar 2018 21:40:16 +0900 templater: extract private function to evaluate generator to byte string
Yuya Nishihara <yuya@tcha.org> [Fri, 23 Mar 2018 21:40:16 +0900] rev 37278
templater: extract private function to evaluate generator to byte string
Sun, 18 Mar 2018 23:14:21 +0900 templater: pass (context, mapping) down to unwrapvalue()
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 23:14:21 +0900] rev 37277
templater: pass (context, mapping) down to unwrapvalue() The same reason as why I made unwraphybrid() take a (context, mapping) pair.
Sat, 17 Mar 2018 20:58:28 +0900 templater: drop unneeded generator from mappable object
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 20:58:28 +0900] rev 37276
templater: drop unneeded generator from mappable object Per the definition of the show() interface, it can return a bytes.
Sat, 17 Mar 2018 20:56:42 +0900 templater: mark .gen as a private attribute
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 20:56:42 +0900] rev 37275
templater: mark .gen as a private attribute
Sun, 18 Mar 2018 00:11:36 +0900 templatekw: do not directly call .gen
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Mar 2018 00:11:36 +0900] rev 37274
templatekw: do not directly call .gen
Sat, 17 Mar 2018 20:52:50 +0900 templater: define interface for objects requiring unwraphybrid()
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 20:52:50 +0900] rev 37273
templater: define interface for objects requiring unwraphybrid() Prepares for introducing another hybrid-like data type. show() takes context as an argument so a wrapper class may render its items by pre-configured template: def show(self, context, mapping): return (context.expand(self._tmpl, mapping + lm) for lm in self._mappings)
Sat, 17 Mar 2018 20:09:05 +0900 templater: pass (context, mapping) down to unwraphybrid()
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Mar 2018 20:09:05 +0900] rev 37272
templater: pass (context, mapping) down to unwraphybrid() See the subsequent patches for why. I initially thought it would be wrong to pass a mapping to flatten() and stringify() since these functions may be applied to a tree of generators, where each node should be bound to the mapping when it was evaluated. But, actually that isn't a problem. If an intermediate node has to override a mapping dict, it can do on unwraphybrid() and yield "unwrapped" generator of byte strings: "{f(g(v))}" # literal template example. ^^^^ # g() want to override a mapping, so it returns a wrapped # object 'G{V}' with partial mapping 'lm' attached. ^^^^^^^ # f() stringifies 'G{V}', starting from a mapping 'm'. # when unwrapping 'G{}', it updates 'm' with 'lm', and # passes it to 'V'. This structure is important for the formatter (and the hgweb) to build a static template keyword, which can't access a mapping dict until evaluation phase.
Mon, 02 Apr 2018 16:18:33 -0700 scmutil: add method for looking up a context given a revision symbol
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 16:18:33 -0700] rev 37271
scmutil: add method for looking up a context given a revision symbol changectx's constructor currently supports a mix if inputs: * integer revnums * binary nodeids * '.', 'tip', 'null' * stringified revnums * namespaced identifiers (e.g. bookmarks and tags) * hex nodeids * partial hex nodeids The first two are always internal [1]. The other five can be specified by the user. The third type ('.', 'tip', 'null') often comes from either the user or internal callers. We probably have some internal callers that pass hex nodeids too, perhaps even partial ones (histedit?). There are only a few callers that pass user-supplied strings: revsets.stringset, peer.lookup, webutil.changeidctx, and maybe one or two more. Supporting this mix of things in the constructor is convenient, but a bit strange, IMO. For example, if repo[node] is given a node that's not in the repo, it will first check if it's bookmark etc before raising an exception. Of course, the risk of it being a bookmark is extremely small, but it just feels ugly. Also, a problem with having this code in the constructor (whether it supports a mix of types or not) is that it's harder to override (I'd like to override it, and that's how this series started). This patch starts moving out the handling of user-supplied strings by introducing scmutil.revsymbol(). So far, that just checks that the input is indeed a string, and then delegates to repo[symbol]. The patch also calls it from revsets.stringset to prove that it works. [1] Well, you probably can enter a 20-byte binary nodeid on the command line, but I don't think we should care to preserve support for that. Differential Revision: https://phab.mercurial-scm.org/D3024
Mon, 02 Apr 2018 23:52:43 -0700 narrow: add trailing slash to dir earlier for debug{revlog,index,data}
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 23:52:43 -0700] rev 37270
narrow: add trailing slash to dir earlier for debug{revlog,index,data} The treemanifest code internally uses trailing slashes on directories (except for the root directory, which is an empty string). We should make sure we pass in directories with trailing slashes when we work with the treemanifest code. For some reason, I seem to have decided to be nice to the callers instead in 49c583ca48c4 (treemanifest: add --dir option to debug{revlog,data,index}, 2015-04-12). Let's fix that and pay the cost of fixing up the directory name close close to where we get it from the user. Differential Revision: https://phab.mercurial-scm.org/D3032
Sat, 31 Mar 2018 23:49:58 +0530 addremove: remove dry_run, similarity from scmutil.addremove (API)
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 31 Mar 2018 23:49:58 +0530] rev 37269
addremove: remove dry_run, similarity from scmutil.addremove (API) Differential Revision: https://phab.mercurial-scm.org/D3000
Tue, 03 Apr 2018 12:16:19 +0530 histedit: make errror message translatable
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Tue, 03 Apr 2018 12:16:19 +0530] rev 37268
histedit: make errror message translatable This is a follow up patch to https://phab.mercurial-scm.org/D2394 As suggested by Yuya, this patch makes the error message translatable Differential Revision: https://phab.mercurial-scm.org/D3031
Mon, 02 Apr 2018 09:18:01 -0700 context: drop support for changeid='' (API)
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 09:18:01 -0700] rev 37267
context: drop support for changeid='' (API) Since the previous commit, there seem to be no users who pass '' to repo.__getitem__, so let's drop support for it. It may seem like a small cost to keep support for it, but I've spent time being confused by it twice already. Differential Revision: https://phab.mercurial-scm.org/D3021
Mon, 02 Apr 2018 08:43:08 -0700 subrepo: use repo['.'] instead of repo['']
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 08:43:08 -0700] rev 37266
subrepo: use repo['.'] instead of repo[''] The "state" value (a revision) passed to abstractsubrepo.phase() can be '' to represent the currently checked out revisions. Let's convert that to the more common '.'. I think this is the last of use of repo['.'] in core. Differential Revision: https://phab.mercurial-scm.org/D3019
Tue, 03 Apr 2018 00:12:29 +0530 children: use repo['.'] instead of repo['']
Martin von Zweigbergk <martinvonz@google.com> [Tue, 03 Apr 2018 00:12:29 +0530] rev 37265
children: use repo['.'] instead of repo[''] Differential Revision: https://phab.mercurial-scm.org/D3020
Mon, 02 Apr 2018 09:16:52 -0700 revset: drop support for '' as alias for '.'
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 09:16:52 -0700] rev 37264
revset: drop support for '' as alias for '.' Not marked BC because I think support for using '' on the CLI was there by accident, and we don't seem to have documented it. Differential Revision: https://phab.mercurial-scm.org/D3018
Mon, 02 Apr 2018 09:06:24 -0700 tests: add test showing current parse of empty string symbol in revset
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 09:06:24 -0700] rev 37263
tests: add test showing current parse of empty string symbol in revset We support e.g. parents(""), but I think that's by accident and I'll change it soon. Differential Revision: https://phab.mercurial-scm.org/D3017
Mon, 02 Apr 2018 08:46:07 -0700 clone: rename "rev" to "revs" since there can be many
Martin von Zweigbergk <martinvonz@google.com> [Mon, 02 Apr 2018 08:46:07 -0700] rev 37262
clone: rename "rev" to "revs" since there can be many It was a little tricky in hg.clone(), since there was a local "revs" variable defined there, but "rev" was never used after "revs", so I just overwrote it. Note that clonewithshare() should also have its "rev" argument renamed to "revs", but I'll leave that to someone else. Differential Revision: https://phab.mercurial-scm.org/D3016
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip