Matt Mackall <mpm@selenic.com> [Wed, 09 Sep 2015 14:43:45 -0700] rev 26215
templater: create string unescape helper (
issue4798)
This gives us a unified place to do error-handling of string-escaping
syntax errors
Yuya Nishihara <yuya@tcha.org> [Sat, 05 Sep 2015 16:50:35 +0900] rev 26214
parsers: use PyTuple_New and SET_ITEM to construct metadata pair of markers
With these 2 patches, fm1readmarkers() gets slightly faster:
obsolete._fm1readmarkers() for 78644 entries
58.0 -> 56.2msec
Yuya Nishihara <yuya@tcha.org> [Sat, 05 Sep 2015 16:41:21 +0900] rev 26213
parsers: use PyTuple_SET_ITEM() to fill new marker tuples
Because we know these tuples have no member yet, PyTuple_SetItem() isn't
necessary.
Yuya Nishihara <yuya@tcha.org> [Sat, 05 Sep 2015 12:56:53 +0900] rev 26212
revset: uncache filteredset.__contains__
Since
96b6b3d78697, condition function returns a cached value, so there's
little benefit to cache __contains__.
No measurable difference found in contrib/base-revsets.txt.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Aug 2015 17:08:37 -0700] rev 26211
hgweb: assign ctype to requestcontext
The very existence of ctype is a bit hacky. But we roll with it.
Before this patch, there was possibly a race condition between 2
threads handling file requests: 1 thread could set the ctype and
another serving a different file would read and use that potentially
wrong ctype.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Aug 2015 17:04:24 -0700] rev 26210
hgweb: add reponame to requestcontext
We have to use object.__setattr__ until the app proxy is gone.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Aug 2015 16:54:52 -0700] rev 26209
hgweb: don't access self.repo during request processing
We want all repository accesses to go through requestcontext.repo
so the request is isolated from the application.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Aug 2015 16:44:36 -0700] rev 26208
hgweb: extract _getview to own function
While we're refactoring code, we might as well remove a method that
doesn't need to be a method.
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 22 Aug 2015 16:41:02 -0700] rev 26207
hgweb: regenerate web substitutions when repo is refreshed
Previously, changes to the configuration would not be picked up by a
running server. That feels like a bug. Regenerate the web substitutions
table when the repository changes.
Durham Goode <durham@fb.com> [Wed, 09 Sep 2015 09:07:27 -0700] rev 26206
add: pass full=False to dirstate walk
Previously cmdutil.add would call wctx.walk(), which under the hood calls
dirstate.walk with full=True. This means it returns all of the clean files
(which we don't need when computing the add set), as well as the unclean files.
This results in 1) a lot more work being done and 2) this code path
circumventing the hgwatchman extension, resulting in worse performance in
hgwatchman environments ('hg add .' went from 9s to 1.8s).
Matt Mackall <mpm@selenic.com> [Wed, 09 Sep 2015 12:40:57 -0700] rev 26205
hgweb: drop unused import
timeless@mozdev.org [Tue, 08 Sep 2015 20:44:18 -0400] rev 26204
obsolete: improve English of successorssets
timeless@mozdev.org [Tue, 08 Sep 2015 20:30:01 -0400] rev 26203
histedit: fix grammar in cleanupnode comment
timeless@mozdev.org [Tue, 08 Sep 2015 15:32:20 -0400] rev 26202
hgweb.server: fix _httprequesthandlerssl help text
timeless@mozdev.org [Tue, 08 Sep 2015 15:32:20 -0400] rev 26201
util: capitalize Python in MBTextWrapper._wrap_chunks comment
timeless@mozdev.org [Tue, 08 Sep 2015 14:56:29 -0400] rev 26200
hgweb: remove ErrorResponse.message
BaseException.message is deprecated:
https://www.python.org/dev/peps/pep-0352/#retracted-ideas
timeless@mozdev.org [Fri, 04 Sep 2015 05:57:58 -0400] rev 26199
manifest: switch add() to heapq.merge (available in Py2.6+)
timeless@mozdev.org [Fri, 04 Sep 2015 05:54:35 -0400] rev 26198
archival: drop self.filename - deprecated in py2.6
timeless@mozdev.org [Sun, 30 Aug 2015 17:50:55 -0400] rev 26197
templater: fix get English
timeless@mozdev.org [Sun, 30 Aug 2015 18:54:31 -0400] rev 26196
help: fix makeitemsdoc English description
timeless@mozdev.org [Tue, 08 Sep 2015 11:35:22 -0400] rev 26195
help: filesets show hg resolve command
timeless@mozdev.org [Tue, 08 Sep 2015 11:30:01 -0400] rev 26194
help: filesets show hg status command
timeless@mozdev.org [Tue, 08 Sep 2015 13:22:01 -0400] rev 26193
hgmanpage: fix grammar
remove 's's from places where they don't belong
insert the preposition 'in'
timeless@mozdev.org [Tue, 08 Sep 2015 12:54:39 -0400] rev 26192
check-seclevel: fix file description grammar
Durham Goode <durham@fb.com> [Tue, 08 Sep 2015 11:39:52 -0700] rev 26191
profiling: allow logging profile to the blackbox
This allows specifying '--config profiling.output=blackbox' which will log the
profile output to the blackbox (if enabled). This is useful for doing profiling
on the server since it allows us to record the command, it's result, any
exceptions, and it's profile, all in one spot. And we get log rotation for
free.
timeless@mozdev.org [Fri, 04 Sep 2015 11:30:38 -0400] rev 26190
bookmark: improve ambiguous documentation for rename
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 06 Sep 2015 11:28:48 -0700] rev 26189
ui: change default path fallback mechanism (
issue4796)
The previous paths API code always fell back to the default path. This
was wrong because if a requested path doesn't exist, that should error.
Only if no path was requested should we fall back to the default.
As part of implementing the test case for issue 4796, it was discovered
that the "repository does not exist" error message raised by
localrepository.__init__ wasn't being seen because the paths API
validates paths before localrepository.__init__ was being called.
The exception and error message from localrepository.__init__ has
been introduced to getpath(). This necessitated rewriting
expandpath() both to catch the exception and to have proper
default fallback.
This code is more complicated than I'd like. But making all tests pass
was a big chore. As more code moves to getpath(), there will likely be
opportunities to improve things a bit.
Yuya Nishihara <yuya@tcha.org> [Mon, 07 Sep 2015 21:58:17 +0900] rev 26188
templater: catch regexp error at sub() function
This patch splits re.sub() into re.compile() and sub() so that it can
distinguish which argument causes re.error.
Yuya Nishihara <yuya@tcha.org> [Tue, 08 Sep 2015 23:00:44 +0900] rev 26187
graphmod: compute slow revset query once prior to reachableroots (
issue4782)
Because revsets query is evaluated lazily, "list(revs)" may take long for
complicated query. So we shouldn't iterate revs many times. This patch is the
easiest workaround for the
issue4782. We could introduce more aggressive
caching, but it wouldn't be as fast as the simple baseset operation.
Gregory Szorc said "this makes `hg wip` on my Firefox clone ~4x faster than
3.5.1 (~6.5s to ~1.5s). This is after a regression in @ to ~45s."
Durham Goode <durham@fb.com> [Mon, 07 Sep 2015 11:35:40 -0700] rev 26186
profiling: add config option for enabling profiling
Previously you could only enable profiling via the --profile option. This is
awkward when trying to debug a server side operation. Let's add a config option
to enable profiling.
In the future, this could be extended to allow profiling a certain percentage of
operations (and potentially reporting that information to an external service).