Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 14:35:05 -0500] rev 25514
templates: add a default template style for status
Color doesn't work yet, so no labels here.
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 14:33:38 -0500] rev 25513
formatter: add template support
This lets all the non-log commands that use the formatter use
templates. There are still some things that don't work, for instance:
- color (needs "repo" in map)
- shortest (needs "ctx" in map)
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 14:30:18 -0500] rev 25512
formatter: add a method to build a full templater from a -T option
Matt Mackall <mpm@selenic.com> [Wed, 10 Jun 2015 14:29:13 -0500] rev 25511
formatter: move most of template option helper to formatter
We want to share this function between formatter and cmdutils. It
doesn't belong in templater because it imports knowledge of ui layers
that shouldn't be there. We'd prefer cmdutil to layer on the formatter
rather than vice-versa. Since the formatter is the handler for -T
options for all non-log commands, let's move the helper there. We
leave the bits specific to the old --style option behind.
Yuya Nishihara <yuya@tcha.org> [Wed, 10 Jun 2015 22:08:15 +0900] rev 25510
color: copy docstring of label() template function to wrapper
Otherwise label() wouldn't be listed in "hg help template" if color extension
is enabled.
Yuya Nishihara <yuya@tcha.org> [Mon, 08 Jun 2015 18:48:45 +0900] rev 25509
templater: make pad function evaluate both string and rawstring templates
"pad" function and "rawstring" type were introduced in parallel,
aa51392da507
in default and
5ab28a2e9962 in stable respectively. Therefore, "pad" function
lacked handling of "rawstring" unintentionally.
Matt Harbison <matt_harbison@yahoo.com> [Sat, 06 Jun 2015 22:10:18 -0400] rev 25508
largefiles: ignore hidden changesets with 'verify --large --lfa'
Previously, if there were any hidden changesets, the --lfa argument would cause
the command to abort with a hint about using --hidden when it tripped over a
hidden changeset.
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Jun 2015 14:49:27 -0700] rev 25507
bundle2: clarify in docstring that header size is for a single header
The docstring for the header size field currently says "The total
number of Bytes used by the part headers", but the size is about a
single header, so let's change it to "header".
Martin von Zweigbergk <martinvonz@google.com> [Wed, 10 Jun 2015 14:47:24 -0700] rev 25506
bundle2: rename duplicate handlepushkeyreply to handleobsmarkerreply
The function was only called through the parthandlermapping dict, so
it was confusing but safe in practice.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 15:49:57 -0700] rev 25505
changegroup: remove 'getchangegroupraw' function
There is no remaining caller for this function.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 15:49:17 -0700] rev 25504
exchange: expand usage of getchangegroupraw
The 'getchangegroupraw' is very simple (two lines) so we inline it in its only
caller. This exposes the 'outgoing' object of the part generator function, allowing
us to add information on the number of changesets contained in the part in a
later changeset. Such information is useful for progress bar.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 15:47:07 -0700] rev 25503
getbundle: have a single getchangegroupraw call site
Having a single call site will simplify the code and help with coming refactoring.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 22:25:51 -0700] rev 25502
phases: abort the whole push if phases fail to update (BC)
When using bundle2, the phase pushkey parts are now made mandatory. As a
result, failure to update the bookmark server side will result in the transaction
being aborted.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 22:25:33 -0700] rev 25501
bookmarks: abort the whole push if bookmarks fails to update (BC)
When using bundle2, the bookmark's pushkey parts are now made mandatory. As a
result failure to update the bookmark server side will result in the transaction
being aborted.
Kyle Lippincott <spectral@google.com> [Mon, 08 Jun 2015 16:55:21 -0700] rev 25500
httppeer: allow extensions to replace urllib2.Request
The authentication library my extension wants to use requires using a different
opener and a different request builder. This change pulls the call to
urllib2.Request out so that my extension can replace it just like it can
replace urlopener.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 17:50:56 -0700] rev 25499
progress: move all logic altering the ui object logic in mercurial.ui
The ui object can take care of its progress object logic by itself.
test-subrepo-recursion is modified because it is a bit sensitive to the "no
progress bar" default. It will become unnecessary in the next step when
progress will be on by default in core.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 17:26:34 -0700] rev 25498
progress: move the singleton logic to the ui module
The use of a singleton for all of progress handling is debatable (because
config may vary). However this is how the extension has been doing it so far.
We move that code into the ui module because this is where is should belong when
progress is moved into core.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 17:19:20 -0700] rev 25497
progress: move most extension code into a 'mercurial.progress' module
This initiate the relocation of progress into core.
Matt Harbison <matt_harbison@yahoo.com> [Tue, 09 Jun 2015 23:40:13 -0400] rev 25496
test-subrepo-recursion: restore globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 09 Jun 2015 21:39:33 -0400] rev 25495
tests: restore 'python' and '$TESTDIR/' for dummyssh invocation
This is a backout of
46727fea7a00, and a partial backout of
c3ecbf694904.
Windows won't execute 'dummyssh' directly, presumably because CreateProcess()
doesn't know how to execute a bash script:
$ hg clone -e "dummyssh" ssh://user@dummy/cloned sshclone
remote: 'dummyssh' is not recognized as an internal or external command,
remote: operable program or batch file.
abort: no suitable response from remote hg!
[255]
With the restoration of python as the executable, $TESTDIR needs to be restored
for these invocations, because python won't search $PATH for 'dummyssh':
$ hg clone -e "python dummyssh" ssh://user@dummy/cloned sshclone
remote: python: can't open file 'dummyssh': [Errno 2] No such file or directory
abort: no suitable response from remote hg!
[255]
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 09 Jun 2015 15:18:47 -0700] rev 25494
perf: support -T for every perf commands
We are already building a formatter, we can now pass it options the official
way.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 10 Jun 2015 13:10:53 -0400] rev 25493
bundle2: convey PushkeyFailed error over the wire
We add a way to convey the precise exception. This will allow better error
message on the server.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 06 Jun 2015 00:50:27 -0700] rev 25492
bundle2: also capture reply capability on failure
When unbundling over the wire is aborted, we have a mechanism to convey the
error inside a bundle part. As we add support for more errors, we need to know if
the client will support them. For this purpose, we duck punch the reply
capabilities of the client on the raised extensions.
This is similar to what is done to salvage the server output on error.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 06 Jun 2015 00:32:19 -0700] rev 25491
bundle2: add an 'error' capability
This capability will be extended as new error type is introduced.
Matt Mackall <mpm@selenic.com> [Tue, 09 Jun 2015 13:21:20 -0500] rev 25490
merge with stable
Ryan McElroy <rmcelroy@fb.com> [Sat, 04 Apr 2015 01:03:52 -0700] rev 25489
templater: introduce indent function
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 17:14:17 -0700] rev 25488
hgewb: disable progress when serving (
issue4582)
Before this patch, progress bar could be displayed when serving, creating
hypothetical problems.
Augie Fackler <augie@google.com> [Tue, 09 Jun 2015 12:57:57 -0400] rev 25487
test-subrepo-recursion.t: fix progress output on no-hardlink systems
Matt Harbison <matt_harbison@yahoo.com> [Tue, 09 Jun 2015 00:02:02 -0400] rev 25486
test-ssh: stablize for platform-specific shell quoting
Windows and OpenVMS use double quotes instead of single.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 05 Jun 2015 16:30:11 -0700] rev 25485
push: catch and process PushkeyFailed error
We add a way to register "pushkey failure callback" that will be used if the
push is aborted by a pushkey failure. A part generator adding mandatory pushkey
parts should register a failure callback for all of them. The callback will be
in charge of generating a meaningful abort if this part fails.
If no callback is registered, the error is propagated.
Catch PushkeyFailed error in exchange.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 23:48:54 -0700] rev 25484
bundle2: introduce a PushkeyFail error to abort unbundle on pushkey error
The pushkey code is generic and the server side has little context on what the
client is trying to achieve. Generating interesting error messages server side
would be challenging. Instead we introduce a dedicated exception that carries more
data. In particular, it carries the id of the part which failed that will allow
clients to display custom error messages depending on the part intent.
The processing and transfer-over-the-wire of this exception is to be implemented
in coming changesets.
Laurent Charignon <lcharignon@fb.com> [Fri, 05 Jun 2015 13:31:18 -0700] rev 25483
record: exiting editor with non-zero status should not stop recording session
Before this patch, exiting a hunk edit in record with a non-zero status lead
to the end of the recording session, losing previously-selected hunks to record.
This patch introduces the more desirable behavior of warning the user and
continuing the recording session.
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 07 Jun 2015 18:11:23 -0700] rev 25482
progress: stop double-wrapping of ui class
We were wrapping the ui class again and again (uisetup, reposetup,
subrepo setup, remote repo setup, etc). We now avoid that. This has
impact on tests that were double-printing data because of this.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 05:28:40 -0700] rev 25481
bundle2: abort when a mandatory pushkey part fails
So far, result of a pushkey operation had no consequence on the transaction
(beside the change). We makes it respect the 'mandatory' flag of part so that
failed pushkey call abort the whole transaction. This will allow rejecting
changes (primary target: changesets) regarding phases or bookmark criteria in
the future (when we will push such data in a mandatory part).
We currently raise an abort error because all clients support it. We'll
introduce a more precise error in the next changesets.
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 27 May 2015 05:35:00 -0700] rev 25480
push: make pushkey part advisory
The current behavior (with bundle1) is to let the rest of the push succeed if
the pushkey call (phases, bookmarks) failed (this comes from the fact that each
item is sent in its own command).
We kept this behavior with bundle2, which is highly debatable, but let us keep
thing as they are now as a start. We are about to enforce 'mandatory' pushkey
part as 'mandatory' successful, so we need to marks parts as advisory to
preserve the current (debatable) behavior.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 08 Jun 2015 13:32:38 -0700] rev 25479
bundle2: pull bookmark the old way if no bundle2 listkeys support (
issue4701)
All known server implementations have listkeys support with bundle2, but people
in the process of implementing new servers may not. Let's be nice with them.
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 15:10:15 -0500] rev 25478
tests: simplify printenv calls
Make printenv executable so that we don't need python, TESTDIR, or
quoting.
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 17:34:45 -0500] rev 25477
tests: make printenv executable
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 15:02:49 -0500] rev 25476
tests: simplify calls to dummyssh
dummyssh is marked executable and is in the path, no need for python,
TESTDIR, or quotes.
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 17:33:32 -0500] rev 25475
tests: remove duplicate inline dummyssh in test-wireproto.t
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 14:55:40 -0500] rev 25474
tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 14:21:45 -0500] rev 25473
tests: make killdaemons.py use DAEMON_PIDS by default
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 14:44:30 -0500] rev 25472
tests: drop explicit $TESTDIR from executables
$TESTDIR is added to the path, so this is superfluous. Also,
inconsistent use of quotes means we might have broken on tests with
paths containing spaces.
Yuya Nishihara <yuya@tcha.org> [Mon, 08 Jun 2015 18:14:22 +0900] rev 25471
templater: do not preprocess template string in "if" expression (
issue4714)
The problem was spotted at
5ab28a2e9962, that says "this patch invokes it
with "strtoken='rawstring'" in "_evalifliteral()", because "t" is the result
of "arg" evaluation and it should be "string-escape"-ed if "arg" is "string"
expression." This workaround is no longer valid since
890845af1ac2 introduced
strict parsing of '\{'.
Instead, we should interpret bare token as "string" or "rawstring" template.
This is what buildmap() does at parsing phase.
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 22:53:15 -0400] rev 25470
largefiles: use the optional badfn argument when building a matcher
The monkey patching in cat() can't be fixed, because it still delegates to the
original bad(). Overriding commands.cat() should go away in favor overriding
cmdutil.cat() anyway, and that matcher can be wrapped with matchmod.badmatch().
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 19:35:32 -0400] rev 25469
mq: use the optional badfn argument when building a matcher
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 19:33:41 -0400] rev 25468
commands: use the optional badfn argument when building a matcher
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 19:24:32 -0400] rev 25467
scmutil: add an optional parameter to matcher factories for a bad() override
Even though scmutil.matchandpats() is documented to warn about bad files,
several callers silence the warning.