Sean Farley <sean@farley.io> [Tue, 20 Jun 2017 15:56:29 -0700] rev 33025
commands: move activebookmarklabel to bookmarks module
This is going to be used in an upcoming patch that moves more methods to
bookmarks.py.
Sean Farley <sean@farley.io> [Tue, 20 Jun 2017 15:36:43 -0700] rev 33024
commands: replace locking code with a context manager
Note that this means that we're unnecessarily creating a transaction
in the pure "--inactive" (i.e. when deactivating the current
bookmark), but that should be harmless.
Sean Farley <sean@farley.io> [Tue, 20 Jun 2017 15:18:40 -0700] rev 33023
bookmarks: factor out adding a list of bookmarks logic from commands
We keep the lock in the caller so that future devs are aware of the
locking implications.
Sean Farley <sean@farley.io> [Tue, 13 Jun 2017 11:10:22 -0700] rev 33022
bookmarks: factor out rename logic from commands
We keep the lock in the caller so that future devs are aware of the
locking implications.
Sean Farley <sean@farley.io> [Mon, 12 Jun 2017 23:02:48 -0700] rev 33021
bookmarks: factor out delete logic from commands
We keep the lock in the caller so that future devs are aware of the
locking implications.
Augie Fackler <augie@google.com> [Fri, 23 Jun 2017 15:30:27 -0400] rev 33020
merge with stable
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:40:58 +0900] rev 33019
revset: add startdepth limit to ancestors() as internal option
This is necessary to implement the set{gen} (set subscript) operator. For
example, set{-n} will be translated to ancestors(set, depth=n, startdepth=n).
https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm
The UI is undecided and I doubt if the startdepth option would be actually
useful, so the option is hidden for now. 'depth' could be extended to take
min:max range, in which case, integer depth should select a single generation.
ancestors(set, depth=:y) # scan up to y-th generation
ancestors(set, depth=x:) # skip until (x-1)-th generation
ancestors(set, depth=x) # select only x-th generation
Any ideas are welcomed.
# reverse(ancestors(tip)) using hg repo
3) 0.075951
4) 0.076175
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:22:41 +0900] rev 33018
revset: add depth limit to ancestors()
This is proposed by the issue5374, and will be a building block of set{gen}
(set subscript) operator.
https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm
# reverse(ancestors(tip)) using hg repo
2) 0.075408
3) 0.075951
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 00:11:48 +0900] rev 33017
dagop: compute depth in revancestors() generator
Surprisingly, this makes revset benchmark slightly faster. I don't know why,
but it appears that wrapping -inputrev by tuple is the key. So I decided to
just enable depth computation by default.
# reverse(ancestors(tip)) using hg repo
1) 0.081051
2) 0.075408
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 08:59:09 +0900] rev 33016
dagop: just compare with the last value to deduplicate input of revancestors()
Since we're using a max heap, the current rev should be a duplicate only
if it equals to the previous one. We don't have to maintain the whole seen
set.
# reverse(ancestors(tip)) using hg repo
0) 0.086420
1) 0.081051
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 17:22:57 +0900] rev 33015
dagop: bulk rename variables in revancestors() generator
- h -> pendingheap: "h" seems too short for variable of long lifetime
- current -> currev: future patches will add current "depth" variable
- parent -> prev or pctx: short lifetime, follows common naming rules
Yuya Nishihara <yuya@tcha.org> [Sun, 18 Jun 2017 17:16:02 +0900] rev 33014
dagop: comment why revancestors() doesn't heapify input revs at once
I wondered why we're doing this complicated stuff without noticing the input
revs may be iterated lazily in descending order. c1f666e27345 showed why.
Yuya Nishihara <yuya@tcha.org> [Sat, 17 Jun 2017 22:33:23 +0900] rev 33013
dagop: unnest inner generator of revancestors()
This just moves iterate() to module-level function.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:17:17 +0200] rev 33012
hgweb: plug followlines action in annotate view
Add the followlines.js script and corresponding parameters as data attribute
on <tbody class="sourcelines"> element.
Extend CSS rules so that they also match the DOM structure of annotate view.
As previously, only address paper and gitweb styles (other styles do not have
followlines at all).
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:07:51 +0200] rev 33011
hgweb: parameterize the tag name of elements holding followlines selection
While plugging followlines.js into "annotate" view, we'll need to walk a
different DOM structure from that of "filerevision" view. In particular, the
selectable source line element is a <tr> in annotate view (in contrast with a
<span> in filerevision view). So make this tag name a parameter of
followlines.js script by passing its value as a "selectabletag" data attribute
of <pre class="sourcelines"> element.
As <pre class="sourcelines"> tags are getting quite long in templates, rewrite
them on several lines.
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 21 Jun 2017 17:02:21 +0200] rev 33010
gitweb: wrap table rows of annotate view into a <tbody> element
We will use this element to hook data attribute for the followlines.js script
to be plugged in annotate view. Also this gets symmetrical with paper style
which already has a <tbody> element.
Denis Laxalde <denis@laxalde.org> [Thu, 22 Jun 2017 11:16:29 +0200] rev 33009
tests: update regex check for fetch error in test-clonebundles.t
On some systems, e.g. Docker container, the actual error may be:
error fetching bundle: [Errno 99] Cannot assign requested address
Update the regex to handle this case.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 20 Jun 2017 20:53:29 -0700] rev 33008
hgweb: use separate CSS class for navigation links in footer
2d93d2159e30 changed the styling of the "page_nav" CSS class to use
flexbox to separate elements within the <div>. I didn't realize that
this class was used outside of the links in the header. So this
resulted in incorrectly formatting links in the footer of various
pages. Fix that by introducing a new CSS class that preserves the
old CSS behavior.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 13:25:42 +0200] rev 33007
configitems: register 'ui.clonebundleprefers' as example for 'configlist'
This exercise the default value handling in 'configlist'.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 13:17:10 +0200] rev 33006
configitems: register 'patch.fuzz' as first example for 'configint'
This exercise the default value handling in 'configint'.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 13:08:03 +0200] rev 33005
configitems: issue a devel warning when overriding default config
If the option is registered, there is already a default value available and
passing a new one is at best redundant. So we issue a deprecation warning in
this case.
(note: there will be case were the default value will not be as simple as what
is currently possible. We'll upgrade the configitems code to handle them in
time.)
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 12:33:59 +0200] rev 33004
configitems: register 'ui.quiet' as first example
We now have a user and this works fine.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 12:15:28 +0200] rev 33003
configitems: get default values from the central registry when available
We do not have any registered config yet, but we are now ready to use them.
For now we ignore this feature for config access with "alternates". On the long
run, we expect alternates to be handled as "aliases" by the config item
themself.
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2017 18:43:27 +0200] rev 33002
configitems: introduce a central registry for config option
We now have the appropriate infrastructure to register config items. Usage will
added in the next changeset.