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.
Fri, 05 Jun 2015 10:44:34 -0700 crecord: fix a typo introduced when moving crecord to core stable
Laurent Charignon <lcharignon@fb.com> [Fri, 05 Jun 2015 10:44:34 -0700] rev 25447
crecord: fix a typo introduced when moving crecord to 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 the 'F' command to 'f' leading to two 'f' commands, one never used. This patch fixes this mistake and re enables the behavior of 'F'.
Mon, 01 Jun 2015 22:34:01 -0700 pull: prevent race condition in bookmark update when using -B (issue4689)
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 22:34:01 -0700] rev 25446
pull: prevent race condition in bookmark update when using -B (issue4689) We are already fetching remote bookmarks to honor the -B option, we now pass that data to the pull process so it can reuse it. This prevents a race condition between the initial looking and the actual pulling of changesets and bookmarks. Tests are updated to handle this fact.
Tue, 02 Jun 2015 00:43:11 -0700 pull: allow a generic way to pass parameters to the pull operation
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 02 Jun 2015 00:43:11 -0700] rev 25445
pull: allow a generic way to pass parameters to the pull operation We have been feeling the need for this in extensions for quite some time. This will be used to pass remote bookmark information around in the next changesets.
Mon, 01 Jun 2015 22:29:49 -0700 pull: skip pulling remote bookmarks with bundle2 if a value already exists
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 22:29:49 -0700] rev 25444
pull: skip pulling remote bookmarks with bundle2 if a value already exists For efficiency and consistency purpose, remote bookmarks, retrieved at the time the pull command code is doing lookup, will be reused during the core pull operation. A second step toward this is to avoid requesting bookmark information in the bundle 2 if we already have them locally.
Mon, 01 Jun 2015 22:28:03 -0700 pull: skip pulling remote bookmarks with bundle1 if a value already exist
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 22:28:03 -0700] rev 25443
pull: skip pulling remote bookmarks with bundle1 if a value already exist For efficiency and consistency purpose, remote bookmarks, retrieved at the time the pull command code is doing lookup, will be reused during the core pull operation. A first step toward this is to setup the logic avoiding pulling the data again during the discovery phase if some have already been provided.
Mon, 01 Jun 2015 17:47:15 -0700 test: pull through http when testing for race conditions
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 17:47:15 -0700] rev 25442
test: pull through http when testing for race conditions The http server is stateless giving more occasion for race. We switch the test to http before adding extra cases tests.
Mon, 01 Jun 2015 17:54:29 -0700 test: display pre-pull remote bookmark state when testing race condition
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 01 Jun 2015 17:54:29 -0700] rev 25441
test: display pre-pull remote bookmark state when testing race condition This makes it easier to read the test. This will be usefull for comming changesets testing more race conditions.
Thu, 04 Jun 2015 22:11:18 -0400 largefiles: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 22:11:18 -0400] rev 25440
largefiles: replace match.bad() monkey patching with match.badmatch() No known issues with the previous code since it restored the original method, but this is cleaner. The monkey patching in cat is harmless, because it is created locally, and doesn't pass it anywhere (subrepo cat isn't supported with largefiles).
Thu, 04 Jun 2015 22:02:22 -0400 revert: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 22:02:22 -0400] rev 25439
revert: replace match.bad() monkey patching with match.badmatch() No known issues with the previous code since it immediately overwrote the patched, locally create matcher.
Thu, 04 Jun 2015 21:55:56 -0400 cat: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:55:56 -0400] rev 25438
cat: replace match.bad() monkey patching with match.badmatch() No known issues with the previous code since it restored the original method, but this is cleaner.
Thu, 04 Jun 2015 21:53:16 -0400 forget: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:53:16 -0400] rev 25437
forget: replace match.bad() monkey patching with match.badmatch() The previous code didn't restore the original method, but it looks like the worst that would happen is junk added to a list that had already been processed by previous subrepo invocation(s).
Thu, 04 Jun 2015 21:49:50 -0400 add: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:49:50 -0400] rev 25436
add: replace match.bad() monkey patching with match.badmatch() The previous code didn't restore the original method, but it looks like the worst that would happen is junk added to a list that had already been processed by previous subrepo invocation(s).
Thu, 04 Jun 2015 21:37:59 -0400 context: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:37:59 -0400] rev 25435
context: replace match.bad() monkey patching with match.badmatch() No known issues with the previous code since it restored the original method, but this is cleaner.
Thu, 04 Jun 2015 21:25:07 -0400 addremove: replace match.bad() monkey patching with match.badmatch()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:25:07 -0400] rev 25434
addremove: replace match.bad() monkey patching with match.badmatch() No known issues with the previous code since it restored the original method, but this is cleaner.
Thu, 04 Jun 2015 21:19:22 -0400 match: introduce badmatch() to eliminate long callback chains with subrepos
Matt Harbison <matt_harbison@yahoo.com> [Thu, 04 Jun 2015 21:19:22 -0400] rev 25433
match: introduce badmatch() to eliminate long callback chains with subrepos Various bit of code replace the bad method on matchers, and then delegate to the original bad method after doing some custom processing. At least some of these forget to restore the original method when the need has passed, and then when the matcher is passed to the next subrepo (even a sibling), another layer is added such that the chain looks like: bad2 -> bad1 -> original At best, this is a waste of processing, but sometimes spurious messages can be emitted (e.g. ccb1623266eb). The trick with this copy of the matcher is to make sure it is *not* passed to any subrepo- the original must be passed instead.
Fri, 05 Jun 2015 21:45:44 +0900 ssl: remove CERT_REQUIRED constant that was necessary for compatibility
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Jun 2015 21:45:44 +0900] rev 25432
ssl: remove CERT_REQUIRED constant that was necessary for compatibility
Fri, 05 Jun 2015 21:40:59 +0900 ssl: drop try-except clause that was necessary for ancient Python
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Jun 2015 21:40:59 +0900] rev 25431
ssl: drop try-except clause that was necessary for ancient Python
Fri, 05 Jun 2015 21:37:46 +0900 ssl: drop support for Python < 2.6, require ssl module
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Jun 2015 21:37:46 +0900] rev 25430
ssl: drop support for Python < 2.6, require ssl module try-except clause is kept for readability of this patch, and it will be removed soon.
Fri, 05 Jun 2015 21:25:28 +0900 ssl: rename ssl_wrap_socket() to conform to our naming convention
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Jun 2015 21:25:28 +0900] rev 25429
ssl: rename ssl_wrap_socket() to conform to our naming convention I've removed ssl_ prefix because the module name contains ssl.
Fri, 05 Jun 2015 07:49:06 +0900 test-https: kill only hgweb daemon to restart for client-auth test
Yuya Nishihara <yuya@tcha.org> [Fri, 05 Jun 2015 07:49:06 +0900] rev 25428
test-https: kill only hgweb daemon to restart for client-auth test This avoids a test failure on Mac OS X. Because tinyproxy.py isn't detached from the shell, it may complain that a child process is terminated by a signal.
Thu, 04 Jun 2015 17:51:19 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Thu, 04 Jun 2015 17:51:19 -0500] rev 25427
merge with stable
Mon, 01 Jun 2015 18:06:20 -0400 hgwebdir: don't allow the hidden parent of a subrepo to show as a directory stable
Matt Harbison <mharbison@attotech.com> [Mon, 01 Jun 2015 18:06:20 -0400] rev 25426
hgwebdir: don't allow the hidden parent of a subrepo to show as a directory Previously, if a subrepo parent had 'web.hidden=True' set, neither the parent nor child had a repository entry. However, the directory entry for the parent would be listed (it wouldn't have the fancy 'web.name' if configured), and that link went to the repo's summary page, effectively making it not hidden. This simply disables the directory processing if a valid repository is present. Whether or not the subrepo should be hidden is debatable, but this leaves that behavior unchanged (i.e. it stays hidden).
Wed, 03 Jun 2015 14:29:11 -0700 pull: avoid race condition with 'hg pull --rev name --update' (issue4706) stable
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 03 Jun 2015 14:29:11 -0700] rev 25425
pull: avoid race condition with 'hg pull --rev name --update' (issue4706) The previous scheme was: 1) lookup node for all pulled revision, 2) pull said node 3) lookup the node of the checkout target 4) update the repository there. If the remote repo changes between (1) and (3), the resolved name will be different and (3) crash. There is actually no need for a remote lookup during (3), we could just set the value in (1). This prevent the race condition and save a possible network roundtrip.
Fri, 29 May 2015 13:11:52 -0700 revert: add an experimental config to use inverted selection
Laurent Charignon <lcharignon@fb.com> [Fri, 29 May 2015 13:11:52 -0700] rev 25424
revert: add an experimental config to use inverted selection We had a discussion on the list about the interactive ui for revert. This patch adds a flag to allow people to test the second alternative (referred to as proposition 2 on the mailing list). It effectively inverts the signs in the
Wed, 20 May 2015 11:44:06 -0500 bundle2: stop capturing output for ssh again
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 11:44:06 -0500] rev 25423
bundle2: stop capturing output for ssh again This backout 36111f98f23d since we can have real time output with ssh again. The tests change is not backed-out because it was a test output fix.
Wed, 20 May 2015 11:41:48 -0500 sshpeer: use the doublepipe object for the server to client channel
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 11:41:48 -0500] rev 25422
sshpeer: use the doublepipe object for the server to client channel This restores real-time output from ssh server while waiting for protocol data sent by the server.
Fri, 22 May 2015 10:48:11 -0500 sshpeer: introduce a "doublepipe" class
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 22 May 2015 10:48:11 -0500] rev 25421
sshpeer: introduce a "doublepipe" class This class is responsible for ensuring we still process the server output streamed through the ssh's 'stderr' pipe during the initial wait for other protocol streams. It currently only works on posix system because of its use of 'select.select'.
Wed, 20 May 2015 18:00:05 -0500 util: add a simple poll utility
Pierre-Yves David <pierre-yves.david@fb.com> [Wed, 20 May 2015 18:00:05 -0500] rev 25420
util: add a simple poll utility We'll use it to detect when a sshpeer have server output to be displayed. The implementation is super basic because all case support is not the focus of this series.
Wed, 03 Jun 2015 14:22:21 -0700 crecord: fix blue artifact bug coming back from help screen
Laurent Charignon <lcharignon@fb.com> [Wed, 03 Jun 2015 14:22:21 -0700] rev 25419
crecord: fix blue artifact bug coming back from help screen Before this patch, with record's curses interface: - When one pressed the ? key to see the help menu and then leaves the help menu - Then, blue artifacts would remain on the screen This patch forces a screen clear / refresh after coming back from the help menu. Since we don't have UI test for crecord I checked on my machine that the bug does not reproduce.
Wed, 03 Jun 2015 14:21:15 -0400 scmutil: consistently return subrepos relative to ctx1 from itersubrepos()
Matt Harbison <matt_harbison@yahoo.com> [Wed, 03 Jun 2015 14:21:15 -0400] rev 25418
scmutil: consistently return subrepos relative to ctx1 from itersubrepos() Previously, if a subrepo was added in ctx2 and then compared to another without it (ctx1), the subrepo for ctx2 was returned amongst all of the ctx1 based subrepos, since no subrepo exists in ctx1 to replace it in the 'subpaths' dict. The two callers of this, basectx.status() and cmdutil.diffordiffstat(), both compare the yielded subrepo against ctx2, and thus saw no changes when ctx2's subrepo was returned. The tests here previously didn't mention 's/a' for the 'p1()' case. This appears to have been a known issue, because some diffordiffstat() comments mention that the subpath disappeared, and "the best we can do is ignore it". I originally ran into the issue with some custom convert code to flatten a tree of subrepos causing hg.putcommit() to abort, but this new behavior seems like the correct status and diff behavior regardless. (The abort in convert isn't something users will see, because convert doesn't currently support subrepos in the official repo.)
Wed, 03 Jun 2015 13:51:27 -0400 context: introduce the nullsub() method
Matt Harbison <matt_harbison@yahoo.com> [Wed, 03 Jun 2015 13:51:27 -0400] rev 25417
context: introduce the nullsub() method Ultimately, this will be used by scmutil. The subrepo module already imports it, so it can't import the subrepo module to access the underlying method.
Wed, 03 Jun 2015 13:45:42 -0400 subrepo: introduce the nullsubrepo() method
Matt Harbison <matt_harbison@yahoo.com> [Wed, 03 Jun 2015 13:45:42 -0400] rev 25416
subrepo: introduce the nullsubrepo() method This will be used in an upcoming patch. It's a one-off use, but seems better to be contained in the subrepo module, than for the next patch to overwrite the _ctx and _state fields in another module. '' is used as the default revision in subrepo.state() if it can't be found, so it seems like a safe choice.
Thu, 07 May 2015 17:15:24 +0900 ssl: prompt passphrase of client key file via ui.getpass() (issue4648)
Yuya Nishihara <yuya@tcha.org> [Thu, 07 May 2015 17:15:24 +0900] rev 25415
ssl: prompt passphrase of client key file via ui.getpass() (issue4648) This is necessary to communicate with third-party tools through command-server channel. This requires SSLContext backported to Python 2.7.9+. It doesn't look nice to pass ui by sslkwargs, but I think it is the only way to do without touching various client codes including httpclient (aka http2). ui is mandatory if certfile is specified, so it has no default value. BTW, test-check-commit-hg.t complains that ssl_wrap_socket() has foo_bar naming. Should I bulk-replace it to sslwrapsocket() ?
Thu, 07 May 2015 17:02:20 +0900 https: do not inherit httplib.HTTPSConnection that creates unused SSLContext
Yuya Nishihara <yuya@tcha.org> [Thu, 07 May 2015 17:02:20 +0900] rev 25414
https: do not inherit httplib.HTTPSConnection that creates unused SSLContext HTTPSConnection of Python 2.7.9 creates SSLContext in __init__, which involves a password prompt for decrypting the private key. This means the password was asked twice, one for unused SSLContext, and next for our ssl function. Because our httpsconnection replaces connect() method at all, we can simply drop httplib.HTTPSConnection. Instead, class and instance attributes are copied from it. HTTPSConnection of Python 2.7.8 and 2.6.9 seem to have no such problem. https://hg.python.org/cpython/file/v2.7.9/Lib/httplib.py#l1183
Thu, 07 May 2015 17:38:22 +0900 test-https: test basic functions of client certificate authentication
Yuya Nishihara <yuya@tcha.org> [Thu, 07 May 2015 17:38:22 +0900] rev 25413
test-https: test basic functions of client certificate authentication Because hgweb doesn't support client certificates, I just patched it to require client certificates that are signed and verified by the server certificate. This won't be ideal for production servers, but should be okay for the test. The encrypted key file will be used by future patches. I couldn't figure out a way to redirect a password prompt provided by OpenSSL, so it isn't tested for now.
Mon, 01 Jun 2015 14:16:52 -0400 phases: add `hg help phases` hint to failures to edit public commits
Jordi Gutiérrez Hermoso <jordigh@octave.org> [Mon, 01 Jun 2015 14:16:52 -0400] rev 25412
phases: add `hg help phases` hint to failures to edit public commits There were a couple of locations that were missing this hint after an edition of some kind failed due to the public phase.
(0) -10000 -3000 -1000 -300 -100 -56 +56 +100 +300 +1000 +3000 +10000 tip