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.