Matt Harbison <matt_harbison@yahoo.com> [Fri, 24 Mar 2017 00:33:35 -0400] rev 38442
relink: use context manager for lock management
Matt Harbison <matt_harbison@yahoo.com> [Fri, 24 Mar 2017 00:32:31 -0400] rev 38441
censor: use context manager for lock management
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:33:42 +0900] rev 38440
templater: remove redundant member variables from templater class
We no longer need them since the engine is instantiated in __init__().
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:27:30 +0900] rev 38439
templater: resurrect cache of engine instance
The engine-level cache was effectively disabled at
48289eafb37d "templater:
drop extension point of engine classes (API)" by mistake, which made template
rendering quite slow.
Spotted by Martin von Zweigbergk.
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:23:43 +0900] rev 38438
templater: extract template loader to separate class
This avoids reference cycle in the subsequent patch:
templater -> _proc -> templater.load -> templater
The templater class will be a thin wrapper around the loader and the engine.
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:34:35 +0900] rev 38437
tests: rename and document test-command-template.t
So that we can specify templater tests as test-template-*.
(original)
$ wc -l test-command-template.t test-template-*
5041 test-command-template.t
23 test-template-filters.t
5064 total
(at this patch)
$ wc -l test-template-*
1088 test-template-basic.t
1376 test-template-functions.t
1195 test-template-keywords.t
1760 test-template-map.t
5419 total
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:14:52 +0900] rev 38436
tests: extract test-template-keywords.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:10:12 +0900] rev 38435
tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 13:17:11 +0900] rev 38434
tests: extract test-template-functions.t from test-command-template.t
I decided to not split filters and functions into two test files since
we sometimes reimplement a filter as a function.
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 12:37:43 +0900] rev 38433
tests: extract test-template-map.t from test-command-template.t
test-command-template.t is one of the slowest tests. Let's split it into
4 files of manageable size.
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Jun 2018 08:22:11 -0700] rev 38432
cleanupnodes: preserve phase of parents of new nodes
As Yuya noted in the review of D3818, passing in
targetphase=phases.draft would result in advancing the phase boundary
of a secret-phase parent. We never pass targetphase=phases.draft so
far, but it's a bug waiting to happen.
I tried to refactor it so max(parentphase, X) happened in one place,
but I couldn't come up with good variables names and I ended up with a
"newphase = max(newphase, parentphase)" line, which made the whole
block not look any better to me.
Differential Revision: https://phab.mercurial-scm.org/D3824
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 16 Jun 2018 18:36:25 +0530] rev 38431
rebase: delete the comment which was not following "do not eat my data"
Differential Revision: https://phab.mercurial-scm.org/D3756
Yuya Nishihara <yuya@tcha.org> [Fri, 08 Jun 2018 22:16:23 +0900] rev 38430
tags: unblock log-like template keywords and functions
It checks if ctx will be used in template since loading ctx per revision
could take extra 10-100msec in total depending on the number of tags.
Yuya Nishihara <yuya@tcha.org> [Fri, 08 Jun 2018 22:10:22 +0900] rev 38429
formatter: provide hint of context keys required by template
This allows us to create ctx objects only if necessary.
I tried another idea which is to populate ctx from 'repo' and 'node' value
on demand. It worked, but seemed unnecessarily complicated. So I chose a
simpler one.
The datafields argument is a space-separated string for consistency with
fm.write() API.
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 21:18:58 +0900] rev 38428
templatefuncs: declare resource requirements for future use
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 21:17:56 +0900] rev 38427
templatefuncs: minimize resource requirements
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Jun 2018 09:32:31 -0700] rev 38426
merge with stable
Yuya Nishihara <yuya@tcha.org> [Tue, 19 Jun 2018 22:45:52 +0900] rev 38425
merge: do not fill manifest of committed revision with pseudo node (
issue5526)
Since
a75d24539aba "convert: fix convert dropping p2 contents during filemap
merge", wctx is not always a committablectx because the convert extension
passes in repo[n] as wctx. If wctx is a committed changeset, its manifest
dict shouldn't be mutated reflecting to the working directory.
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 13:49:06 -0700] rev 38424
split: preserve phase of commit that is being split
With this change, hg split will preserve the phase of the commit that is being
split, ignoring the phases.new-commit setting. Previously, we would use whatever
phases.new-commit was set to (unless our parent was secret, then we would be
secret even if phases.new-commit=draft).
Now, splitting a draft commit with phases.new-commit=secret does not cause the
new commits to become secret, and splitting a secret commit with
phases.new-commit=draft and a draft parent does not cause the new commits to
become draft.
Test cases and commit message taken from Kyle Lippincott's D2016 (thanks!).
Differential Revision: https://phab.mercurial-scm.org/D3819
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:40 -0700] rev 38423
scmutil: make cleanupnodes optionally also fix the phase
We have had multiple bugs where the phase wasn't correctly carried
forward to a rewritten changeset (for example: phabricator, split,
evolve, fix). Handling the phase update in cleanupnodes() makes it
less likely to happen again, especially once we have made it fix the
phase by default (perhaps in the next release cycle).
This patch also updates all applicable callers so we get some testing
of it.
Note that rebase and histedit can't be fixed yet because they call
cleanupnodes() only at the end and the phase may have been changed by
the user when the rebase/histedit was interrupted (due to merge
conflicts). I think we should make them write one commit at a time (as
it already does), along with associated obsmarkers, bookmark moves,
etc. When that's done, we can switch them over to cleanupnodes().
Differential Revision: https://phab.mercurial-scm.org/D3818
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:23 -0700] rev 38422
tests: add test of uncommit with default phase as secret
We didn't seem to have any test checking that uncommitting a draft
commit with phase.new-phase=secret preserved the draft phase.
Differential Revision: https://phab.mercurial-scm.org/D3817
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Sun, 17 Jun 2018 15:52:08 +0530] rev 38421
grep: add --diff flag
Adds a diff flag, which works exactly same as all, in fact since
--all searches diffs, there diff is a better name for it.
The all flag is still here for backward compatibility reasons.
Some major tests for all has been picked and added for diff.
Differential Revision: https://phab.mercurial-scm.org/D3763
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Jun 2018 09:27:30 -0700] rev 38420
fix: include cleanupnodes() in transaction
As pointed out by Yuya, we need a transaction to make sure the state
before the call to cleanupnodes() is not observable.
Differential Revision: https://phab.mercurial-scm.org/D3823
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:19:37 -0700] rev 38419
progress: enforce use of complete() on the helper class
complete() is preferred over update(None), so let's enforce that.
Differential Revision: https://phab.mercurial-scm.org/D3822
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:11:34 -0700] rev 38418
progress: extract function for closing topic
progress(None) had a completely different implementation from the
progress(<not None>) implementation. It very much feels like it should
be a separate method, so this patch makes it so. That also makes it
clear that only the topic parameter matters when closing a topic
(e.g. "total" does not matter).
Differential Revision: https://phab.mercurial-scm.org/D3821
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:06:28 -0700] rev 38417
progress: use context manager for lock
Differential Revision: https://phab.mercurial-scm.org/D3820
Boris Feld <boris.feld@octobus.net> [Tue, 19 Jun 2018 18:21:37 +0200] rev 38416
configitem: reorder items in the 'server' section
Keeping things alphabetically sorted.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:48:59 -0400] rev 38415
test-lfs: add coverage for the binary() fileset
This ensures that the blobs don't need to be present to be filtered properly.
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:05:26 -0400] rev 38414
fileset: use filectx.isbinary() to filter out binaries in eol()
Since LFS stores the binary attribute in the pointer file, this means that the
file doesn't need to be downloaded in order to be skipped. This function also
catches an IOError if the data can't be loaded in the non-LFS case.
I wonder if it's worth storing the unix/dos attributes in the pointer file as
well, though I'd expect LFS files to be binary most of the time.
Matti Hamalainen <ccr@tnsp.org> [Tue, 19 Jun 2018 13:07:18 +0300] rev 38413
crecord: re-center display in interactive curses commit on pageup/down
A long-standing issue in the crecord (interactive curses commit interface)
is that using PageUp/Down to move along longer-than current screen size
chunks would "lose" the cursor and not properly re-center.
There has been self.recenterdisplayedarea() to do that, but it has not been
in use for some reason. Add calls to the appropriate uparrowshiftevent()
and downarrowshiftevent() methods to fix this.