Wed, 10 Jun 2015 14:49:27 -0700 bundle2: clarify in docstring that header size is for a single header
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".
Wed, 10 Jun 2015 14:47:24 -0700 bundle2: rename duplicate handlepushkeyreply to handleobsmarkerreply
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.
Sun, 07 Jun 2015 15:49:57 -0700 changegroup: remove 'getchangegroupraw' function
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.
Sun, 07 Jun 2015 15:49:17 -0700 exchange: expand usage of getchangegroupraw
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.
Sun, 07 Jun 2015 15:47:07 -0700 getbundle: have a single getchangegroupraw call site
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.
Wed, 27 May 2015 22:25:51 -0700 phases: abort the whole push if phases fail to update (BC)
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.
Wed, 27 May 2015 22:25:33 -0700 bookmarks: abort the whole push if bookmarks fails to update (BC)
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.
Mon, 08 Jun 2015 16:55:21 -0700 httppeer: allow extensions to replace urllib2.Request
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.
Sun, 07 Jun 2015 17:50:56 -0700 progress: move all logic altering the ui object logic in mercurial.ui
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.
Sun, 07 Jun 2015 17:26:34 -0700 progress: move the singleton logic to the ui module
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.
Sun, 07 Jun 2015 17:19:20 -0700 progress: move most extension code into a 'mercurial.progress' module
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.
Tue, 09 Jun 2015 23:40:13 -0400 test-subrepo-recursion: restore globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 09 Jun 2015 23:40:13 -0400] rev 25496
test-subrepo-recursion: restore globs for Windows
Tue, 09 Jun 2015 21:39:33 -0400 tests: restore 'python' and '$TESTDIR/' for dummyssh invocation
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]
Tue, 09 Jun 2015 15:18:47 -0700 perf: support -T for every perf commands
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.
Wed, 10 Jun 2015 13:10:53 -0400 bundle2: convey PushkeyFailed error over the wire
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.
Sat, 06 Jun 2015 00:50:27 -0700 bundle2: also capture reply capability on failure
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.
Sat, 06 Jun 2015 00:32:19 -0700 bundle2: add an 'error' capability
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.
Tue, 09 Jun 2015 13:21:20 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 09 Jun 2015 13:21:20 -0500] rev 25490
merge with stable
Sat, 04 Apr 2015 01:03:52 -0700 templater: introduce indent function
Ryan McElroy <rmcelroy@fb.com> [Sat, 04 Apr 2015 01:03:52 -0700] rev 25489
templater: introduce indent function
Sun, 07 Jun 2015 17:14:17 -0700 hgewb: disable progress when serving (issue4582)
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.
Tue, 09 Jun 2015 12:57:57 -0400 test-subrepo-recursion.t: fix progress output on no-hardlink systems
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
Tue, 09 Jun 2015 00:02:02 -0400 test-ssh: stablize for platform-specific shell quoting
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.
Fri, 05 Jun 2015 16:30:11 -0700 push: catch and process PushkeyFailed error
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.
Wed, 27 May 2015 23:48:54 -0700 bundle2: introduce a PushkeyFail error to abort unbundle on pushkey error
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.
Fri, 05 Jun 2015 13:31:18 -0700 record: exiting editor with non-zero status should not stop recording session
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.
Sun, 07 Jun 2015 18:11:23 -0700 progress: stop double-wrapping of ui class
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.
Wed, 27 May 2015 05:28:40 -0700 bundle2: abort when a mandatory pushkey part fails
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.
Wed, 27 May 2015 05:35:00 -0700 push: make pushkey part advisory
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.
Mon, 08 Jun 2015 13:32:38 -0700 bundle2: pull bookmark the old way if no bundle2 listkeys support (issue4701)
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.
Mon, 08 Jun 2015 15:10:15 -0500 tests: simplify printenv calls
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.
Mon, 08 Jun 2015 17:34:45 -0500 tests: make printenv executable
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 17:34:45 -0500] rev 25477
tests: make printenv executable
Mon, 08 Jun 2015 15:02:49 -0500 tests: simplify calls to dummyssh
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.
Mon, 08 Jun 2015 17:33:32 -0500 tests: remove duplicate inline dummyssh in test-wireproto.t
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 17:33:32 -0500] rev 25475
tests: remove duplicate inline dummyssh in test-wireproto.t
Mon, 08 Jun 2015 14:55:40 -0500 tests: drop DAEMON_PIDS from killdaemons calls
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 14:55:40 -0500] rev 25474
tests: drop DAEMON_PIDS from killdaemons calls
Mon, 08 Jun 2015 14:21:45 -0500 tests: make killdaemons.py use DAEMON_PIDS by default
Matt Mackall <mpm@selenic.com> [Mon, 08 Jun 2015 14:21:45 -0500] rev 25473
tests: make killdaemons.py use DAEMON_PIDS by default
Mon, 08 Jun 2015 14:44:30 -0500 tests: drop explicit $TESTDIR from executables
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.
Mon, 08 Jun 2015 18:14:22 +0900 templater: do not preprocess template string in "if" expression (issue4714) stable
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.
Fri, 05 Jun 2015 22:53:15 -0400 largefiles: use the optional badfn argument when building a matcher
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().
Fri, 05 Jun 2015 19:35:32 -0400 mq: use the optional badfn argument when building a matcher
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
Fri, 05 Jun 2015 19:33:41 -0400 commands: 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
Fri, 05 Jun 2015 19:24:32 -0400 scmutil: add an optional parameter to matcher factories for a bad() override
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.
Fri, 05 Jun 2015 19:07:54 -0400 scmutil: use the optional badfn argument when building a matcher
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 19:07:54 -0400] rev 25466
scmutil: use the optional badfn argument when building a matcher
Fri, 05 Jun 2015 19:01:04 -0400 context: add an optional constructor parameter for a match.bad() override
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 19:01:04 -0400] rev 25465
context: add an optional constructor parameter for a match.bad() override Most matcher creation is done by way of a context.
Fri, 05 Jun 2015 18:56:33 -0400 match: add an optional constructor parameter for a bad() override
Matt Harbison <matt_harbison@yahoo.com> [Fri, 05 Jun 2015 18:56:33 -0400] rev 25464
match: add an optional constructor parameter for a bad() override This will be used to eliminate monkey patching of new matcher instances that weren't removed in 5984dd42e140::1a95c57959f6.
Sun, 07 Jun 2015 09:30:15 +0900 mail: pass ui to sslutil.wrapsocket() even if verifycert is off (issue4713)
Yuya Nishihara <yuya@tcha.org> [Sun, 07 Jun 2015 09:30:15 +0900] rev 25463
mail: pass ui to sslutil.wrapsocket() even if verifycert is off (issue4713) 21b536f01eda made 'ui' argument is passed via sslutil.sslkwargs(), but mailer doesn't call sslkwargs() if smtp.verifycert is off. So we have to put it in sslkwargs manually.
Sat, 06 Jun 2015 14:03:55 +0200 windows: use os.SEEK_END
Adrian Buehlmann <adrian@cadifra.com> [Sat, 06 Jun 2015 14:03:55 +0200] rev 25462
windows: use os.SEEK_END
Fri, 05 Jun 2015 15:44:43 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 05 Jun 2015 15:44:43 -0500] rev 25461
merge with stable
Fri, 05 Jun 2015 12:57:21 -0700 crecord: fix three typos introduced while moving crecord into core stable
Laurent Charignon <lcharignon@fb.com> [Fri, 05 Jun 2015 12:57:21 -0700] rev 25460
crecord: fix three typos introduced while moving crecord into core When moving crecord to core, I did a search an replace to remove all of the variable with caps letter. Doing so, I unfortunately changed some commands with capital letter shortcut to their lowercase counterpart. I fixed one of these cases in 093d38165e5a. This patch fixes all of the remaining cases.
Thu, 04 Jun 2015 14:57:58 -0500 revlog: move size limit check to addrevision
Matt Mackall <mpm@selenic.com> [Thu, 04 Jun 2015 14:57:58 -0500] rev 25459
revlog: move size limit check to addrevision This lets us add the name of the indexfile to the message.
Wed, 20 May 2015 11:55:59 -0500 sshpeer: also use doublepipe for client to server communication
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 11:55:59 -0500] rev 25458
sshpeer: also use doublepipe for client to server communication This will allow even more real time output when the server issue output in the middle a stream push.
Fri, 05 Jun 2015 04:54:23 -0700 sshpeer: allow doublepipe on unbuffered main pipe
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 05 Jun 2015 04:54:23 -0700] rev 25457
sshpeer: allow doublepipe on unbuffered main pipe The output pipe does not have manually managed read buffer (actually, no read anything). To also use the doublepipe for outgoing write (useful to consume remote output when pushing large set of data) we need the doublepipe to work on standard pipe too.
Wed, 20 May 2015 10:58:29 -0500 sshpeer: allow write operations through double pipe
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 10:58:29 -0500] rev 25456
sshpeer: allow write operations through double pipe We have a shiny toy, lets make it wider.
Wed, 20 May 2015 17:40:47 -0500 sshpeer: rename 'size' to 'data' in doublepipe
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 17:40:47 -0500] rev 25455
sshpeer: rename 'size' to 'data' in doublepipe We are about to add 'write' support, the argument will be either an int or a string.
Fri, 05 Jun 2015 14:34:58 -0400 mq: ban \r and \n in patch names (issue4711)
Augie Fackler <augie@google.com> [Fri, 05 Jun 2015 14:34:58 -0400] rev 25454
mq: ban \r and \n in patch names (issue4711) This is at best crazy, and at worst will break things like the series file. Let's just stop the madness.
Fri, 05 Jun 2015 14:31:52 -0400 mq: use %r to format illegal characters instead of manually quoting
Augie Fackler <augie@google.com> [Fri, 05 Jun 2015 14:31:52 -0400] rev 25453
mq: use %r to format illegal characters instead of manually quoting This will make it easier to ban \r and \n in the next patch and still have a sensible error message.
Fri, 05 Jun 2015 15:20:33 -0400 histedit: abort rather than edit a public changeset (issue4704)
Augie Fackler <augie@google.com> [Fri, 05 Jun 2015 15:20:33 -0400] rev 25452
histedit: abort rather than edit a public changeset (issue4704) This is suboptimal as the user still has to explicitly cancel the histedit afterwards, but it prevents the immediate problem. histedit should probably implicitly do 'hg histedit --abort' if a util.Abort is raised internally.
Fri, 05 Jun 2015 15:06:58 -0400 test-histedit-edit: add test that demonstrates bug in issue4704
Augie Fackler <augie@google.com> [Fri, 05 Jun 2015 15:06:58 -0400] rev 25451
test-histedit-edit: add test that demonstrates bug in issue4704 Durham and I agree that it's a bug you can fold into a change that's not listed in the histedited set, so we'll follow this up with a change that prevents folds as the first edit step.
Fri, 05 Jun 2015 15:12:08 -0400 histedit: copyedit docstring wording problem I noticed while here
Augie Fackler <augie@google.com> [Fri, 05 Jun 2015 15:12:08 -0400] rev 25450
histedit: copyedit docstring wording problem I noticed while here
Fri, 05 Jun 2015 13:00:18 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 05 Jun 2015 13:00:18 -0500] rev 25449
merge with stable
Thu, 04 Jun 2015 22:10:32 -0700 dirstate: avoid invalidating every entries when list is empty
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 04 Jun 2015 22:10:32 -0700] rev 25448
dirstate: avoid invalidating every entries when list is empty Default value was not tested with 'is None', this made empty list seen as default value and result the invalidation of every single entry in the dirstate. On repos with hundred of thousand of files, this results in minutes of lookup time instead nothing. This is a text book example of why we should test 'is None' if this is what we mean.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 tip