Yuya Nishihara <yuya@tcha.org> [Sat, 23 Apr 2016 16:09:30 +0900] rev 29001
revset: make sort() do dumb multi-pass sorting for multiple keys (issue5218)
Our invert() function was too clever to not take length into account. I could
fix the problem by appending '\xff' as a terminator (opposite to '\0'), but
it turned out to be slower than simple multi-pass sorting.
New implementation is pretty straightforward, which just calls sort() from the
last key. We can do that since Python sort() is guaranteed to be stable. It
doesn't sound nice to call sort() multiple times, but actually it is faster.
That's probably because we have fewer Python codes in hot loop, and can avoid
heavy string and list manipulation.
revset #0: sort(0:10000, 'branch')
0) 0.412753
1) 0.393254
revset #1: sort(0:10000, '-branch')
0) 0.455377
1) 0.389191 85%
revset #2: sort(0:10000, 'date')
0) 0.408082
1) 0.376332 92%
revset #3: sort(0:10000, '-date')
0) 0.406910
1) 0.380498 93%
revset #4: sort(0:10000, 'desc branch user date rev')
0) 0.542996
1) 0.486397 89%
revset #5: sort(0:10000, '-desc -branch -user -date -rev')
0) 0.965032
1) 0.518426 53%
Yuya Nishihara <yuya@tcha.org> [Thu, 24 Mar 2016 22:55:56 +0900] rev 29000
log: fix status template to list copy source per dest (issue5155)
Before, copied files were assumed as "A" (added) and listed followed by
non-copy added files. This could double entries of a copy if it had "M"
(modified) state.
So, this patch makes the template check if a file is included in copies dict.
This way, entries should never be doubled.
The output of "log -Tstatus -C" does not always agree with "status -C --change"
due to the bug of "status", which is documented in test-status.t. See also
2963d5c9d90b.
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 16:33:13 +0100] rev 28999
graphmod: disable graph styling when HGPLAIN is set (issue5212)
Produce stable output for tools to rely on by hardcoding all edge styles to
"|". This ensures that any tool parsing the output of hg log -G still gets the
same behaviour as pre-3.8 releases.
Martijn Pieters <mjpieters@fb.com> [Wed, 20 Apr 2016 18:26:29 +0100] rev 28998
graphmod: fix seen state handling for > 2 parents (issue5174)
When there are more than 2 parents for a given node (in a sparse graph), extra
dummy nodes are inserted to transition the lines more gradually. However, since
the seen state was not updated when yielding the extra nodes, the wrong graph
styles were being applied to the nodes.
timeless <timeless@mozdev.org> [Wed, 20 Apr 2016 21:33:02 +0000] rev 28997
httpclient: reverse accidental damage from 86db5cb55d46
timeless <timeless@mozdev.org> [Thu, 21 Apr 2016 04:30:18 +0000] rev 28996
tests: tolerate http2
You can run tests like this:
run-tests.py -l --extra-config-opt ui.usehttp2=true
And ideally, no tests should fail...
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:02:13 -0700] rev 28995
make: add rule for building an ubuntu ppa
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 13:01:47 -0700] rev 28994
builddeb: add flag for a source-only deb
This is required for building a ppa for ubuntu which following patches will
use.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 17:06:11 -0700] rev 28993
builddeb: create source archive for ubuntu
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 15:44:00 -0700] rev 28992
builddeb: ignore vcs and build results
This one is a no-brainer. Previously, if you tried to build a deb on ubuntu, it
would try to diff files in the .hg store. These flags prevent that.
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:28:26 -0700] rev 28991
builddeb: copy over .gz and .dsc files
We were forgetting to copy over the signature (if it exists) and the zipped
diff, so let's do that.
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:27:42 -0700] rev 28990
builddeb: ignore errors about find not finding files
The debuild command may output less files than we explicitly list so let's not
error out if none exist.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:42:53 -0700] rev 28989
builddeb: use the os codename instead of 'unstable'
This fixes a lintian error (and indeed, launchpad rejects it) by using the
distribution's codename (e.g. xenial, trusty, etc).
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 12:33:21 -0700] rev 28988
builddeb: use sed -i
Notice that there is no space after '-i'. This makes it work on both GNU and
BSD versions of sed.
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:36:40 -0700] rev 28987
dockerdeb: redirect 'cd' in export command to /dev/null
This had the unfortunate side effect of causing the environment to have a
newline due to the fact that some 'cd' outputs the result of the directory
change. So, let's just redirect the meaningless output.
Yuya Nishihara <yuya@tcha.org> [Sat, 26 Mar 2016 18:50:56 +0900] rev 28986
help: avoid using "$n" parameter in revsetalias example
Because parsing "$n" requires a crafted tokenizer, it exists only for backward
compatibility (as documented in revset._tokenizealias.) This patch updates the
examples so that users are encouraged to use symbolic names instead of "$n"s.
I'm going to implement alias expansion in templater, which won't support "$n"
parameters to make my life easier. Templater is more complicated than revset
because tokenizer and parser call each other.
Sean Farley <sean@farley.io> [Sun, 17 Apr 2016 10:39:17 -0700] rev 28985
debian: add missing netbase dependency
Apparently, some machines don't have this service (launchpad builders are one
such example). This adds the correct dependency for test-serve.t.
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 14:24:25 -0700] rev 28984
debian: add missing zip/unzip dependencies
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:53:23 -0700] rev 28983
debian: add missing python-docutils dependency
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:46:16 -0700] rev 28982
debian: add missing python-all-dev dependency
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:15:49 +0000] rev 28981
patchbomb: use single quotes around command hint
Windows command lines use double quotes to quote arguments with spaces.
This change is in a series to unify around using single quotes around
commands, and double quotes around interior arguments.
This changeset is taken on stable for consistency with similar update done
before the freeze.
See 2e58dc022caa, ad2cd2ef25d9, fc1d75e7a98d and 9dcc9ed26d33.
Jun Wu <quark@fb.com> [Sun, 10 Apr 2016 01:28:52 +0100] rev 28980
chg: forward SIGWINCH to worker
Before this patch, if the user uses chg and ncurses interface, resizing the
terminal window will mess up its content.
This patch fixes the issue by forwarding SIGWINCH to the worker process.
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:09:42 -0500] rev 28979
Added signature for changeset 740156eedf2c
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:09:34 -0500] rev 28978
Added tag 3.8-rc for changeset 740156eedf2c
Matt Mackall <mpm@selenic.com> [Sat, 16 Apr 2016 18:06:48 -0500] rev 28977
merge default into stable for 3.8 code freeze
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 13:10:34 -0700] rev 28976
make: remove packages directory in clean rule
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 11:51:57 -0700] rev 28975
make: add forgotten hgext3rd to clean rule
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 11:51:41 -0700] rev 28974
make: add chg to clean rule
Sean Farley <sean@farley.io> [Sat, 16 Apr 2016 11:17:06 -0700] rev 28973
test-docker-packaging: add new line to test output
It seems we changed our build but didn't update the docker test.
Sean Farley <sean@farley.io> [Fri, 15 Apr 2016 14:47:32 -0700] rev 28972
tests: relax pattern matching for newer docker
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:29:33 +0530] rev 28971
py3: make factotum use absolute_import
check-code complains for using urllib2 so that too was fixed.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:15:05 +0530] rev 28970
py3: make extdiff use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 02:10:55 +0530] rev 28969
py3: make eol use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:53:56 +0530] rev 28968
py3: make color use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:23:05 +0530] rev 28967
py3: make hgmanpage use absolute_import
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:20:44 +0530] rev 28966
py3: make gendoc use absolute_import
Fixed direct imports even the tests were not complaining.
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 17 Apr 2016 00:14:42 +0530] rev 28965
py3: make check-seclevel use absolute_import
Also fixed direct symbol imports even the tests were not complaining.
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:20:11 +0000] rev 28964
fetch: use single quotes around command hint
Windows command lines use double quotes to quote arguments with spaces.
This change is in a series to unify around using single quotes around
commands, and double quotes around interior arguments.
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:19:57 +0000] rev 28963
graft: use single quotes around command hint
Windows command lines use double quotes to quote arguments with spaces.
This change is in a series to unify around using single quotes around
commands, and double quotes around interior arguments.
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:18:59 +0000] rev 28962
config: use single quotes around command hint
Windows command lines use double quotes to quote arguments with spaces.
This change is in a series to unify around using single quotes around
commands, and double quotes around interior arguments.
timeless <timeless@mozdev.org> [Thu, 14 Apr 2016 15:17:15 +0000] rev 28961
debugcreatestreamclonebundle: use single quotes around command hint
Windows command lines use double quotes to quote arguments with spaces.
This change is in a series to unify around using single quotes around
commands, and double quotes around interior arguments.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Apr 2016 09:02:37 -0700] rev 28960
transaction: clear callback instances after usage
Prevents double usage and helps reduce reference cycles, which
were observed to occur in `hg convert` and other scenarios where
there are multiple transactions per process.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 16 Apr 2016 09:00:15 -0700] rev 28959
lock: clear postrelease hooks list after usage
Post release hooks should only be called once. Setting the
list to None after usage will prevent accidental usage after
they are used.
In addition, it is easy for reference cycles to sneak into hook
functions. Clearing the hooks after usage helps prevent these
cycles.
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.