Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 21:05:55 +0900] rev 28958
ui: drop template aliases by HGPLAIN
Otherwise, scripting output could be suffered from user aliases.
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:59:36 +0900] rev 28957
templater: load and expand aliases by template engine (API) (
issue4842)
Now template aliases are fully supported in log and formatter templates.
As I said before, aliases are not expanded in map files. This avoids possible
corruption of our stock styles and web templates. This behavior is undocumented
since no map file nor [templates] section are documented at all. Later on,
we might want to add [aliases] section to map files if it appears to be useful.
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 13:23:40 +0900] rev 28956
templater: inline compiletemplate() function into engine
This allows the template engine to modify parsed tree.
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Apr 2016 17:23:09 +0900] rev 28955
templater: factor out function that creates templater from string template
This function will host loading of template aliases. It is not defined at
templater, but at formatter, since formatter is the module handling ui stuff
in front of templater.
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:26:48 +0900] rev 28954
templater: separate function to create templater from map file (API)
New frommapfile() function will make it clear when template aliases will be
loaded. They should be applied to command arguments and templates in hgrc,
but not to map files. Otherwise, our stock styles and web templates
(i.e map-file templates) could be modified unintentionally.
Future patches will add "aliases" argument to __init__(), but not to
frommapfile().
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:18:30 +0900] rev 28953
templater: extract function that loads template map file
Prepares for API change. See the next patch for details.
'map' variable is renamed to avoid shadowing map() function.
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Apr 2016 23:22:43 +0900] rev 28952
templater: demote "base" directory of map file to local variable
It isn't referenced from other places.
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Apr 2016 22:50:50 +0900] rev 28951
notify: do not load style file if template is specified (BC)
This patch makes sure that either "tmpl" or "mapfile" is exclusively set,
which is the same behavior as common log-like templates and formatter outputs.
See the previous patch for why.
Yuya Nishihara <yuya@tcha.org> [Mon, 04 Apr 2016 22:48:34 +0900] rev 28950
bugzilla: do not load style file if template is specified (BC)
This prepares for the API change to support template aliases. I'm going to
extract a factory function of templater that reads a map file:
# original
templater(mapfile, ..., cache, ...)
# new
templater.frommapfile(mapfile, ...) # read mapfile to build cache/map
templater(..., cache, ...) # use specified cache (= map elements)
This will make it clear to isolate stock styles (i.e. map files) from user
aliases. Template aliases should be applied to command arguments and templates
in hgrc, but not to map files. Otherwise, our stock styles and web templates
could be modified unintentionally.
This patch makes sure that either "tmpl" or "mapfile" is exclusively set. It's
theoretically a behavior change, since you could put new keywords in template
by defining them in a map file before:
# mapfile
foo = "{rev}"
# hgrc
[bugzilla]
style = mapfile
template = {foo}
But the old behavior would be a bug because bugzilla.template is documented
as "overrides style if specified". Also, common log-like templates and
formatter doesn't allow using mapfile-keywords in a separate template. So
I decided to make a BC.
Since there was no test for the bugzilla extension, this adds new test that
covers style/template output.
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 15:14:25 -0500] rev 28949
subrepo: disable localizations when calling Git (
issue5176)
Spotted by Aidar Sayfullin.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 12:41:58 +0530] rev 28948
py3: make test-demandimport use print_function
Replacing print statements with print function.
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 06:03:11 +0300] rev 28947
py3: use absolute_import in svnxml.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:34:21 +0300] rev 28946
py3: use absolute_import in sitecustomize.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:33:23 +0300] rev 28945
py3: use absolute_import in revlog-formatv0.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:32:10 +0300] rev 28944
py3: use absolute_import in printenv.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:30:32 +0300] rev 28943
py3: use absolute_import in mockblackbox.py
Robert Stanca <robert.stanca7@gmail.com> [Sat, 16 Apr 2016 05:29:29 +0300] rev 28942
py3: use absolute_import in killdaemons.py
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:53:53 -0400] rev 28941
test-shelve: shorten a long path so it works on Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:37:52 -0400] rev 28940
test-convert-git: skip tests with invalid path characters on Windows
Matt Harbison <matt_harbison@yahoo.com> [Fri, 15 Apr 2016 22:23:34 -0400] rev 28939
test-subrepo-git: add globs for Windows
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 02:41:15 -0700] rev 28938
hook: report untrusted hooks as failure (
issue5110) (BC)
Before this patch, there was no way for a repository owner to ensure that
validation hooks would be run by people with write access. If someone had write
access but did not trust the user owning the repository, the config and its hook
would simply be ignored.
After this patch, hooks from untrusted configs are taken into account but never
actually run. Instead they are reported as failures right away. This will ensure
validation performed by a hook is not ignored.
As a side effect writer can be forced to trust a repository hgrc by adding a
'pretxnopen.trust=true' hook to the file.
This was discussed during the 3.8 sprint with Matt Mackall, Augie Fackler and
Kevin Bullock.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 17:03:49 -0700] rev 28937
hook: split config reading further
We want an easy way to fetch the hook config with and without honoring
"trusted" so that we can compare the values. So we extract the part
retrieving raw hook data from the config to be able to call it twice
in the next patch.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 02:28:46 -0700] rev 28936
hook: small refactor to store hooks as dict instead of list
We are about to take untrusted hooks into account (to report them as failures)
so we need to rearrange the code a bit to allow config overwriting each other
in a later patch.
timeless <timeless@mozdev.org> [Fri, 15 Apr 2016 17:43:47 +0000] rev 28935
mail: retain hostname for sslutil.wrapsocket (
issue5203)
SMTPS + STARTTLS need to provide serverhostname,
and we can't store it in sslkwargs because that breaks
something involving the https protocol.
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 04:06:24 +0530] rev 28934
tests: make test-trusted use print_function
There was some confusing output format at some places in
test-trusted.py.out, the new print function ends with a newline by
default whereas the old print statement uses a space generally. So the
output in test-trusted.py.out is changed because of some confusing
output format which was produced by print statement
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:38:23 +0530] rev 28933
tests: make test-doctest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:35:27 +0530] rev 28932
tests: make test-hgwebdir-paths use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:22:45 +0530] rev 28931
tests: make test-lrucachedict use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:10:41 +0530] rev 28930
tests: make test-lrucachedict use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:08:16 +0530] rev 28929
tests: make test-manifest use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 03:04:23 +0530] rev 28928
tests: make test-pathencode use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 16 Apr 2016 02:59:36 +0530] rev 28927
tests: make test-simplemerge use absolute_import
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 01:37:29 -0700] rev 28926
crecord: cleanup the remains of commit confirmation
The confirmation screen is now only used for the 'review' option we simplify
the code and rename the function.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 14 Apr 2016 01:27:18 -0700] rev 28925
crecord: drop the extra confirmation screen
The commit confirmation is not very useful -- it gives no way to view what you
have selected, so you're blindly choosing whether to proceed or not, and it adds
a lot of unnecessary friction to committing. In addition, we now have a working
'review' choice for those who really want to review the final change.
Ryan McElroy initially submitted a config option to make this optional, but we
never saw a V2. However as the freeze is near and curses have never been
officially out of the door, I think it is worth skipping the config and trying
getting it right for this release.
Yuya Nishihara <yuya@tcha.org> [Fri, 15 Apr 2016 20:37:11 +0900] rev 28924
update: resurrect bare update from null parent to tip-most branch head
The situation is tricky if repository has no "default" branch, because "null"
revision belongs to non-existent "default" branch.
Before
e1dd0de26557, bare update from null would bring us to the tip-most
non-closed branch head.
e1dd0de26557 removed the special handling of missing
"default" branch since we wanted to stick to the uncommitted branch in that
case. But, if the parent is "null" revision, and if the missing branch is
"default", it shouldn't be an uncommitted branch. In this case, bare update
should bring us to the tip-most head as before.
This should fix the test breakage introduced by
e1dd0de26557.
timeless <timeless@mozdev.org> [Tue, 12 Apr 2016 14:43:36 +0000] rev 28923
tests: run import-checker with tests .t files
timeless <timeless@mozdev.org> [Tue, 12 Apr 2016 21:43:56 +0000] rev 28922
import-checker: parse python code from .t files
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 16:34:59 +0000] rev 28921
import-checker: track filenames for SyntaxErrors
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 16:36:19 +0000] rev 28920
import-checker: track SyntaxErrors
We don't really need to report SyntaxErrors, since in theory
docchecker or a test will catch them, but they happen, and
we can't just have the code crash, so for now, we're reporting
them.
timeless <timeless@mozdev.org> [Mon, 11 Apr 2016 22:34:04 +0000] rev 28919
import-checker: refactor source reading
This will allow .t files to generate multiple sources.
It will also allow .py doctests to generate additional sources.
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 01:06:45 +0530] rev 28918
tests: make test-pathencode use print_function
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 01:03:24 +0530] rev 28917
tests: make test-run-tests use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:58:31 +0530] rev 28916
tests: make test-symlink-os-yes-fs-no use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:56:08 +0530] rev 28915
tests: make test-ui-color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:53:35 +0530] rev 28914
tests: make test-url use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 14 Apr 2016 00:49:58 +0530] rev 28913
tests: make test-trusted use absolute_import
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:31:56 +0900] rev 28912
templater: add parsing and expansion rules to process "templatealias" section
The debugtemplate command is updated to show expanded tree, but still the
template engine doesn't support alias expansion. That's why the test says
"parse error" for now.
Yuya Nishihara <yuya@tcha.org> [Sun, 27 Mar 2016 20:29:03 +0900] rev 28911
templater: add function to parse whole string as template expression
This will be a parser of template aliases, and it can also be used for
processing quoted string templates in map files. That's why this function
isn't defined in the upcoming _aliasrules class.
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 17:27:34 +0900] rev 28910
parser: factor out _trygetfunc() that extracts function name and arguments
This provides a customization point for templater. In templater, there are
two ways to call a unary function: func(x) and x|func. They are processed
differently in templater due to historical reasons, but they should be
handled in the same way while expanding aliases. In short, x|func should be
processed as syntactic sugar for func(x).
_funcnode and _getlist() are replaced by _trygetfunc().
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 17:21:11 +0900] rev 28909
parser: make _getalias() return (alias, pattern-args) pair
This allows us to factor out a function that extracts a function (name, args)
pair. See the next patch for why.
Yuya Nishihara <yuya@tcha.org> [Tue, 29 Mar 2016 16:50:16 +0900] rev 28908
parser: drop redundant comparison between alias declaration tree and pattern
Since _getalias() explicitly tests the type and name of the pattern tree, we
don't need to compare "a.tree == tree" for 'symbol', and "a.tree == tree[:2]"
for 'func', where tree is either ('symbol', name) or ('func', ('symbol', name)).
This change helps implementing better handling of template aliases. See the
subsequent patches for details.
The alias.tree field is removed as it is no longer used.
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 14:26:37 +0000] rev 28907
patchbomb: fix public-is-missing hint
Without this, there is no space between a hash and the -r preceding the next
line in the use hg push hint
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 14:36:52 +0000] rev 28906
tests: clarify patchbomb repo is public not remote
timeless <timeless@mozdev.org> [Wed, 13 Apr 2016 13:51:39 +0000] rev 28905
run-tests: set HGMODULEPOLICY for --pure
Without this, my python 2.6 virtualenv test run with --pure and
--local fails with:
+ ImportError: Python minor version mismatch: The Mercurial extension modules were compiled with Python 2.7.8, but Mercurial is currently using Python with sys.hexversion=
33950192: Python 2.6.9 (unknown, Apr 13 2016, 12:40:12)
+ [GCC 4.9.2
20141101 (Red Hat 4.9.2-1)]
+ at: ~/hg/py26/bin/python
Nathaniel Manista <nathaniel@google.com> [Thu, 14 Apr 2016 15:26:18 -0400] rev 28904
cmdutil: avoid recycling variable name "name" in namespaces code
This just feels like asking for future trouble and confusion.
liscju <piotr.listkiewicz@gmail.com> [Tue, 05 Apr 2016 06:53:33 +0200] rev 28903
update: fix bare update to work on new branch
So far bare update on new branch results in
'abort: branch new-branch not found'. This commit fixes
this by updating to the parent of wctx.
The effect of updating to the parent of wctx is to move to the paren't
branch - this means that it is no longer necessary to prevent you from
updating if you would lose your newly created branch.