Fri, 01 Jul 2016 14:09:53 +0200 rebase: move abort/continue prep to be a method of the RR class
Kostia Balytskyi <ikostia@fb.com> [Fri, 01 Jul 2016 14:09:53 +0200] rev 29472
rebase: move abort/continue prep to be a method of the RR class This commit moves logic that prepares the execution of abort and continue phases or rebase operation to be a method of the rebaseruntime class.
Thu, 30 Jun 2016 18:59:53 -0700 hgweb: expose list of per-repo labels to templates
Gregory Szorc <gregory.szorc@gmail.com> [Thu, 30 Jun 2016 18:59:53 -0700] rev 29471
hgweb: expose list of per-repo labels to templates hgweb currently offers limited functionality for "classifying" repositories. This patch aims to change that. The web.labels config option list is introduced. Its values are exposed to the "index" and "summary" templates. Custom templates can use template features like ifcontains() to e.g. look for the presence of a specific label and engage specific behavior. For example, a site operator may wish to assign a "defunct" label to a repository so the repository is prominently marked as dead in repository indexes.
Tue, 21 Jun 2016 14:58:49 -0700 histedit: move autoverb rule to the commit it matches
Sean Farley <sean@farley.io> [Tue, 21 Jun 2016 14:58:49 -0700] rev 29470
histedit: move autoverb rule to the commit it matches Inspired by how 'git rebase -i' works, we move the autoverb to the commit line summary that it matches. We do this by iterating over all rules and inserting each non-autoverb line into a key in an ordered dictionary. If we find an autoverb line later, we then search for the matching key and append it to the list (which is the value of each key in the dictionary). If we can't find a previous line to move to, then we leave the rule in the same spot. Tests have been updated but the diff looks a little messy because we need to change one of the summary lines so that it will actually move to a new spot. On top of that, we added -q flags to future some of the output and needed to change the file it modified so that it wouldn't cause a conflict.
Fri, 27 May 2016 14:03:00 -0700 histedit: use _getsummary in ruleeditor
Sean Farley <sean@farley.io> [Fri, 27 May 2016 14:03:00 -0700] rev 29469
histedit: use _getsummary in ruleeditor This patch uses our common method instead of duplicating logic.
Fri, 27 May 2016 14:02:36 -0700 histedit: use _getsummary in torule
Sean Farley <sean@farley.io> [Fri, 27 May 2016 14:02:36 -0700] rev 29468
histedit: use _getsummary in torule This patch uses our common method instead of duplicating logic.
Fri, 27 May 2016 14:00:12 -0700 histedit: extract common summary code into method
Sean Farley <sean@farley.io> [Fri, 27 May 2016 14:00:12 -0700] rev 29467
histedit: extract common summary code into method We're going to need to use this code in our autoverb logic so let's extract it now and save ourselves from code duplication.
Thu, 26 May 2016 15:43:00 -0700 histedit: remove unneeded initial parameter
Sean Farley <sean@farley.io> [Thu, 26 May 2016 15:43:00 -0700] rev 29466
histedit: remove unneeded initial parameter Now that the autoverb logic no longer acts on an individual rule line, we don't need this parameter since we apply our logic just once at the time of initialization.
Thu, 26 May 2016 16:46:10 -0700 histedit: move autoverb logic from torule to ruleeditor
Sean Farley <sean@farley.io> [Thu, 26 May 2016 16:46:10 -0700] rev 29465
histedit: move autoverb logic from torule to ruleeditor This is needed for an upcoming change that will automatically rearrange the rules based on the commit message. Before this patch, the autoverb logic only applied to one rule at a time. This moves that logic one step up so that it can iterate over all the rules and rearrange as needed.
Thu, 30 Jun 2016 13:06:19 -0700 treemanifests: actually strip directory manifests
Martin von Zweigbergk <martinvonz@google.com> [Thu, 30 Jun 2016 13:06:19 -0700] rev 29464
treemanifests: actually strip directory manifests Stripping has only partly worked since 7cbb3a01fa38 (repair: use cg3 for treemanifests, 2016-01-19): the bundle seems to have been created correctly, but revlog entries in subdirectory revlogs were not stripped. This meant that e.g. "hg verify" would fail after stripping in a tree manifest repo. To find the revisions to strip, we simply iterate over all directories in the repo (included in store.datafiles()). This is inefficient for stripping few commits, but efficient for stripping many commits. To optimize for stripping few commits, we could instead walk the tree from the root and find modified subdirectories, just like we do in the changegroup code. I'm leaving that for another day.
Thu, 30 Jun 2016 15:26:11 +0100 logtoprocess: do not leak the ui object in uisetup
Jun Wu <quark@fb.com> [Thu, 30 Jun 2016 15:26:11 +0100] rev 29463
logtoprocess: do not leak the ui object in uisetup logtoprocess.log should use "self" passed in function arguments instead of the "ui" object from outside the function.
Wed, 29 Jun 2016 23:53:20 +0100 chgserver: document why we don't merge mtimehash and confighash
Jun Wu <quark@fb.com> [Wed, 29 Jun 2016 23:53:20 +0100] rev 29462
chgserver: document why we don't merge mtimehash and confighash People may get confused about chg's mtimehash and confighash design: why two hashes instead of just one. This patch adds text addressing the concern.
Thu, 30 Jun 2016 10:31:50 +0100 extensions: move uisetup and extsetup to standalone functions
Jun Wu <quark@fb.com> [Thu, 30 Jun 2016 10:31:50 +0100] rev 29461
extensions: move uisetup and extsetup to standalone functions This is to make them wrap-able. chgserver wants to know if an extension accesses config or environment variables during uisetup and extsetup and include them in confighash accordingly.
Sat, 02 Jul 2016 09:41:40 -0700 sslutil: don't access message attribute in exception (issue5285) stable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 02 Jul 2016 09:41:40 -0700] rev 29460
sslutil: don't access message attribute in exception (issue5285) I should have ran the entire test suite on Python 2.6. Since the hostname matching tests are implemented in Python (not .t tests), it didn't uncover this warning. I'm not sure why - warnings should be printed regardless. This is possibly a bug in the test runner. But that's for another day...
Fri, 01 Jul 2016 16:02:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jul 2016 16:02:56 -0500] rev 29459
merge with stable
Fri, 01 Jul 2016 13:54:35 +0800 hgweb: add absolute urls for archives in json-summary
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Jul 2016 13:54:35 +0800] rev 29458
hgweb: add absolute urls for archives in json-summary
Fri, 01 Jul 2016 13:36:59 +0800 tests: allow bz2 archives in test-hgweb-json.t
Anton Shestakov <av6@dwimlabs.net> [Fri, 01 Jul 2016 13:36:59 +0800] rev 29457
tests: allow bz2 archives in test-hgweb-json.t Only testing a specific type because list items seem to be in arbitrary order.
Fri, 01 Jul 2016 19:17:16 +0530 keepalive: switch from thread to threading module
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 01 Jul 2016 19:17:16 +0530] rev 29456
keepalive: switch from thread to threading module The thread module in py3 is renamed to _thread, but we can use the high level threading module instead.
Tue, 28 Jun 2016 16:01:53 +0530 py3: conditionalize httplib import
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 28 Jun 2016 16:01:53 +0530] rev 29455
py3: conditionalize httplib import The httplib library is renamed to http.client in python 3. So the import is conditionalized and a test is added in check-code to warn to use util.httplib
Fri, 01 Jul 2016 15:12:33 -0500 Added signature for changeset 26a5d605b868 stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jul 2016 15:12:33 -0500] rev 29454
Added signature for changeset 26a5d605b868
Fri, 01 Jul 2016 15:12:32 -0500 Added tag 3.8.4 for changeset 26a5d605b868 stable
Matt Mackall <mpm@selenic.com> [Fri, 01 Jul 2016 15:12:32 -0500] rev 29453
Added tag 3.8.4 for changeset 26a5d605b868
Sun, 26 Jun 2016 19:34:48 -0700 sslutil: synchronize hostname matching logic with CPython stable 3.8.4
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 26 Jun 2016 19:34:48 -0700] rev 29452
sslutil: synchronize hostname matching logic with CPython sslutil contains its own hostname matching logic. CPython has code for the same intent. However, it is only available to Python 2.7.9+ (or distributions that have backported 2.7.9's ssl module improvements). This patch effectively imports CPython's hostname matching code from its ssl.py into sslutil.py. The hostname matching code itself is pretty similar. However, the DNS name matching code is much more robust and spec conformant. As the test changes show, this changes some behavior around wildcard handling and IDNA matching. The new behavior allows wildcards in the middle of words (e.g. 'f*.com' matches 'foo.com') This is spec compliant according to RFC 6125 Section 6.5.3 item 3. There is one test where the matcher is more strict. Before, '*.a.com' matched '.a.com'. Now it doesn't match. Strictly speaking this is a security vulnerability.
Sun, 26 Jun 2016 19:16:54 -0700 tests: import CPython's hostname matching tests stable
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 26 Jun 2016 19:16:54 -0700] rev 29451
tests: import CPython's hostname matching tests CPython has a more comprehensive test suite for it's built-in hostname matching functionality. This patch adds its tests so we can improve our hostname matching functionality. Many of the tests have different results from CPython. These will be addressed in a subsequent commit.
Fri, 01 Jul 2016 07:41:37 -0300 i18n-pt_BR: synchronized with dd9175ca81dc stable
Wagner Bruna <wbruna@yahoo.com> [Fri, 01 Jul 2016 07:41:37 -0300] rev 29450
i18n-pt_BR: synchronized with dd9175ca81dc
Wed, 29 Jun 2016 19:43:27 -0700 sslutil: emit warning when no CA certificates loaded
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 29 Jun 2016 19:43:27 -0700] rev 29449
sslutil: emit warning when no CA certificates loaded If no CA certificates are loaded, that is almost certainly a/the reason certificate verification fails when connecting to a server. The modern ssl module in Python 2.7.9+ provides an API to access the list of loaded CA certificates. This patch emits a warning on modern Python when certificate verification fails and there are no loaded CA certificates. There is no way to detect the number of loaded CA certificates unless the modern ssl module is present. Hence the differences in test output depending on whether modern ssl is available. It's worth noting that a test which specifies a CA file still renders this warning. That is because the certificate it is loading is a x509 client certificate and not a CA certificate. This test could be updated if anyone is so inclined.
Wed, 29 Jun 2016 19:49:39 -0700 tests: test case where default ca certs not available
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 29 Jun 2016 19:49:39 -0700] rev 29448
tests: test case where default ca certs not available I'm not a fan of TLS tests not testing both branches of a possible configuration. While we have test coverage of the inability to validate a cert later in this file, I insist that we add this branch so our testing of security code is extra comprehensive.
Wed, 29 Jun 2016 19:38:24 -0700 sslutil: don't load default certificates when they aren't relevant
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 29 Jun 2016 19:38:24 -0700] rev 29447
sslutil: don't load default certificates when they aren't relevant Before, we would call SSLContext.load_default_certs() when certificate verification wasn't being used. Since SSLContext.verify_mode == ssl.CERT_NONE, this would ideally no-op. However, there is a slim chance the loading of system certs could cause a failure. Furthermore, this behavior interfered with a future patch that aims to provide a more helpful error message when we're unable to load CAs. The lack of test fallout is hopefully a sign that our security code and tests are in a relatively good state.
Wed, 29 Jun 2016 19:37:38 -0700 sslutil: display a better error message when CA file loading fails
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 29 Jun 2016 19:37:38 -0700] rev 29446
sslutil: display a better error message when CA file loading fails Before, sslcontext.load_verify_locations() would raise a ssl.SSLError which would be caught further up the stack and converted to a urlerror. By that time, we lost track of what actually errored. Trapping the error here gives users a slightly more actionable error message. The behavior between Python <2.7.9 and Python 2.7.9+ differs. This is because our fake SSLContext class installed on <2.7.9 doesn't actually do anything during load_verify_locations: it defers actions until wrap_socket() time. Unfortunately, a number of errors can occur at wrap_socket() time and we're unable to ascertain what the root cause is. But that shouldn't stop us from providing better error messages to people running a modern and secure Python version.
Wed, 29 Jun 2016 18:15:28 -0700 tests: add test for empty CA certs file
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 29 Jun 2016 18:15:28 -0700] rev 29445
tests: add test for empty CA certs file smf reported that an environment with no loaded CA certs resulted in a weird error. I'd like to detect this a bit better so we can display an actionable error message. The actual error being globbed over in this patch is "unknown error" with a ssl.c line number. That isn't useful at all.
Mon, 06 Jun 2016 13:08:13 +0200 internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com> [Mon, 06 Jun 2016 13:08:13 +0200] rev 29444
internals: move the bitmanipulation routines into its own file This is to allow more flexibility with the C sources -- now the bitmanipulation routines can be safely imported without importing Python.h
Fri, 24 Jun 2016 16:12:05 +0100 journal: new experimental extension
Martijn Pieters <mjpieters@fb.com> [Fri, 24 Jun 2016 16:12:05 +0100] rev 29443
journal: new experimental extension Records bookmark locations and shows you where bookmarks were located in the past. This is the first in a planned series of locations to be recorded; a future patch will add working copy (dirstate) tracking, and remote bookmarks will be supported as well, so the journal storage format should be fairly generic to support those use-cases.
Mon, 27 Jun 2016 11:53:50 -0400 httpclient: update to 54868ef054d2 of httpplus
Augie Fackler <raf@durin42.com> [Mon, 27 Jun 2016 11:53:50 -0400] rev 29442
httpclient: update to 54868ef054d2 of httpplus As of that revision, httpplus fully supports Python 3, including mimicing all the subtle behavior changes around headers in Python 3's http.client.
Mon, 27 Jun 2016 20:44:14 +0900 revset: check invalid function syntax "func-name"() explicitly
Yuya Nishihara <yuya@tcha.org> [Mon, 27 Jun 2016 20:44:14 +0900] rev 29441
revset: check invalid function syntax "func-name"() explicitly Before the error was caught at func() as an unknown identifier, and the optimizer failed to detect the syntax error. This patch introduces getsymbol() helper to ensure that a string is not allowed as a function name.
Tue, 28 Jun 2016 22:39:06 +0900 chg: silence warning of unused parameter 'sig'
Yuya Nishihara <yuya@tcha.org> [Tue, 28 Jun 2016 22:39:06 +0900] rev 29440
chg: silence warning of unused parameter 'sig'
Wed, 29 Jun 2016 22:48:32 +0800 hgweb: reindent atom/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Jun 2016 22:48:32 +0800] rev 29439
hgweb: reindent atom/changelogentry.tmpl It was mixing tabs and spaces, and not in a good way. Indent style of other atom entries seems to be 1 space per level, so let's apply it here as well.
Wed, 29 Jun 2016 21:07:59 +0800 hgweb: remove unused/nonexistent filelogentry from atom/map
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Jun 2016 21:07:59 +0800] rev 29438
hgweb: remove unused/nonexistent filelogentry from atom/map filelog in atom style uses changelogentry to show commits, and atom/filelogentry.tmpl doesn't even exist.
Wed, 29 Jun 2016 20:58:09 +0800 hgweb: remove unnecessary CDATA markup in atom/branchentry.tmpl
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Jun 2016 20:58:09 +0800] rev 29437
hgweb: remove unnecessary CDATA markup in atom/branchentry.tmpl Since content is of type "text" (and is already escaped), using a CDATA section is not required. Looks like this was just an artifact of copying things from rss style in add2f9ddcfb5, because other entries in atom style don't use CDATA in such places.
Wed, 29 Jun 2016 20:19:04 +0800 hgweb: reindent rss/changelogentry.tmpl
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Jun 2016 20:19:04 +0800] rev 29436
hgweb: reindent rss/changelogentry.tmpl It was mixing tabs and spaces, and not in a good way. Indent style of other rss entries seems to be 4 spaces per level, so let's apply it here as well.
Wed, 29 Jun 2016 19:40:04 +0800 hgweb: remove a couple of superfluous spaces in rss style
Anton Shestakov <av6@dwimlabs.net> [Wed, 29 Jun 2016 19:40:04 +0800] rev 29435
hgweb: remove a couple of superfluous spaces in rss style
Mon, 27 Jun 2016 19:10:30 +0530 py3: add tests in check-code to load modules from util.py
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 27 Jun 2016 19:10:30 +0530] rev 29434
py3: add tests in check-code to load modules from util.py The conditionalize imports are added in util.py and now we import modules from there. So adding tests so that someone in future can use that.
Mon, 27 Jun 2016 16:48:54 +0530 py3: conditionalize SocketServer import
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 27 Jun 2016 16:48:54 +0530] rev 29433
py3: conditionalize SocketServer import The SocketServer is renamed to socketserver in python 3
Mon, 27 Jun 2016 16:37:37 +0530 py3: conditionalize xmlrpclib import
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 27 Jun 2016 16:37:37 +0530] rev 29432
py3: conditionalize xmlrpclib import The xmlrpclib library is renamed to xmlrpc.client in python 3
Mon, 27 Jun 2016 16:16:10 +0530 py3: conditionalize the urlparse import
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 27 Jun 2016 16:16:10 +0530] rev 29431
py3: conditionalize the urlparse import The urlparse library is renamed to urllib.parse in python 3
Mon, 27 Jun 2016 15:53:38 +0530 py3: update tests/test-check-py3-compat.t
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 27 Jun 2016 15:53:38 +0530] rev 29430
py3: update tests/test-check-py3-compat.t The lower part of the test runs with python 3 and hence remain unchanged.
Fri, 24 Jun 2016 15:21:10 +0100 chg: send SIGPIPE to server immediately when pager exits (issue5278)
Jun Wu <quark@fb.com> [Fri, 24 Jun 2016 15:21:10 +0100] rev 29429
chg: send SIGPIPE to server immediately when pager exits (issue5278) If the user press 'q' to leave the 'less' pager, it is expected to end the hg process immediately. We currently rely on SIGPIPE for this behavior. But SIGPIPE won't arrive if we don't write anything (like doing heavy computation, reading from network etc). If that happens, the user will feel that the hg process just hangs. The patch address the issue by adding a SIGCHLD signal handler and sends SIGPIPE to the server as soon as the pager exits. This is also an issue with hg's pager implementation.
Fri, 24 Jun 2016 17:06:41 +0100 chgserver: do not ignore SIGPIPE if pager is used
Jun Wu <quark@fb.com> [Fri, 24 Jun 2016 17:06:41 +0100] rev 29428
chgserver: do not ignore SIGPIPE if pager is used We rely on SIGPIPE to exit when the pager exits. And Python ignores SIGPIPE by default. Explicitly set SIGPIPE handler to SIG_DFL (terminate) just like pager.py.
Fri, 24 Jun 2016 11:12:41 -0700 debug: make debug{revlog,index,data} --dir not just a flag
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Jun 2016 11:12:41 -0700] rev 29427
debug: make debug{revlog,index,data} --dir not just a flag The directory argument (for tree manifests) should belong to to the --dir argument. I had mistakenly made --dir a flag. One effect of this was that I had meant for "-m" to be optional, but instead it changed the behavior of --dir, so with "hg debugdata -m --dir dir1 0", the -m took over and the "dir1" got treated as a revision in the root manifest log.
Fri, 24 Jun 2016 11:25:55 -0700 debugdata: disallow trailing option with -c/-m
Martin von Zweigbergk <martinvonz@google.com> [Fri, 24 Jun 2016 11:25:55 -0700] rev 29426
debugdata: disallow trailing option with -c/-m Before this change, "hg debugdata -c 0 foo" was allowed.
Sun, 26 Jun 2016 17:16:57 +0900 revset: get rid of redundant error checking from match()
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Jun 2016 17:16:57 +0900] rev 29425
revset: get rid of redundant error checking from match() Actually there was no additional error checking. It should be caught by "not all(specs)".
Fri, 24 Jun 2016 10:32:38 +0100 share: move magic string to a constant
Martijn Pieters <mjpieters@fb.com> [Fri, 24 Jun 2016 10:32:38 +0100] rev 29424
share: move magic string to a constant
Sat, 12 Mar 2016 16:08:19 -0800 branchmap: remove unused exception variable
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 Mar 2016 16:08:19 -0800] rev 29423
branchmap: remove unused exception variable
Mon, 27 Jun 2016 12:11:18 +0200 patch: allow copy information to be passed in
Henrik Stuart <henriks@unity3d.com> [Mon, 27 Jun 2016 12:11:18 +0200] rev 29422
patch: allow copy information to be passed in When displaying patches from graphical tools where you can browse through individual files, with diff being called separately on each, recomputing the limits of file copy history can become rather expensive on large repositories. Instead, we can compute it once and pass it in for subsequent calls.
Thu, 23 Jun 2016 22:37:17 +0200 largefiles: check file in the repo store before checking remotely (issue5257)
liscju <piotr.listkiewicz@gmail.com> [Thu, 23 Jun 2016 22:37:17 +0200] rev 29421
largefiles: check file in the repo store before checking remotely (issue5257) Problem was files to check were gathered in the repository where the verify was launched but verification was done on the remote store. It was observed when user committed in cloned repository and ran verify before pushing - committed files were marked as non existing. This commit fixes this by checking in the remote store only files that are not existing in the repository store where verify was launched. Solution is similiar to fd288d118074
Mon, 27 Jun 2016 10:33:33 +0200 largefiles: remove additional blank lines
liscju <piotr.listkiewicz@gmail.com> [Mon, 27 Jun 2016 10:33:33 +0200] rev 29420
largefiles: remove additional blank lines It does not conform to the coding style.
Fri, 24 Jun 2016 09:08:16 +0200 largefiles: fix misleading comments in lfutil instore and storepath
liscju <piotr.listkiewicz@gmail.com> [Fri, 24 Jun 2016 09:08:16 +0200] rev 29419
largefiles: fix misleading comments in lfutil instore and storepath Problem in both cases is cache in largefiles has assigned meaning - user cache which is additional place to get/put files. Those two function works on store - the main place to store largefiles in the repository - .hg/largefiles and using "cache" to describe it is misleading.
Sat, 25 Jun 2016 19:10:46 -0700 revset: implement match() in terms of matchany()
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 19:10:46 -0700] rev 29418
revset: implement match() in terms of matchany() match() is the special case of a single element list being passed to matchany() with the additional error checking that the revset spec is defined. Change the implementation to remove the redundant code and have match() call matchany().
Sat, 25 Jun 2016 19:12:20 -0700 scmutil: improve documentation of revset APIs
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 19:12:20 -0700] rev 29417
scmutil: improve documentation of revset APIs I can never remember the differences between the various revset APIs. I can never remember that scmutil.revrange() is the one I want to use from user-facing commands. Add some documentation to clarify this. While we're here, the argument name for revrange() is changed to "specs" because that's what it actually is.
Sat, 25 Jun 2016 13:52:46 -0700 mdiff: remove use of __slots__
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 13:52:46 -0700] rev 29416
mdiff: remove use of __slots__ The use of __slots__ was added way back in 2006 in 4ec58b157265. __slots__ isn't necessary for this class.
Sat, 25 Jun 2016 17:40:53 -0700 i18n: use unicode literal
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 17:40:53 -0700] rev 29415
i18n: use unicode literal Other parts of this expression are already using unicode literals. We need this to make Python 3 happy and to avoid an implicit conversion in Python 2.
Sat, 25 Jun 2016 17:22:06 -0700 pycompat: add HTTPPasswordMgrWithDefaultRealm to Python 3 block
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 17:22:06 -0700] rev 29414
pycompat: add HTTPPasswordMgrWithDefaultRealm to Python 3 block Looks like we missed this in 800ec7c048b0.
Sun, 26 Jun 2016 07:59:02 -0700 ui: path option to declare which revisions to push by default
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 26 Jun 2016 07:59:02 -0700] rev 29413
ui: path option to declare which revisions to push by default Now that we have a mechanism for declaring path sub-options, we can start to pile on features! Many power users have expressed frustration that bare `hg push` attempts to push all local revisions to the remote. This patch introduces the "pushrev" path sub-option to control which revisions are pushed when no "-r" argument is specified. The value of this sub-option is a revset, naturally. A future feature addition could potentially introduce a "pushnames" sub-options that declares the list of names (branches, bookmarks, topics, etc) to push by default. The entire "what to push by default" feature should probably be considered before this patch lands.
Sat, 25 Jun 2016 18:35:14 -0700 ui: don't fixup [paths] sub-options
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 18:35:14 -0700] rev 29412
ui: don't fixup [paths] sub-options As part of developing a subsequent patch I discovered that sub-option values like "." were getting converted to paths. This is because the [paths] section is treated specially during config loading. This patch prevents post-processing sub-options from the [paths] section.
Sat, 25 Jun 2016 07:26:43 -0700 sslutil: abort when unable to verify peer connection (BC)
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 07:26:43 -0700] rev 29411
sslutil: abort when unable to verify peer connection (BC) Previously, when we connected to a server and were unable to verify its certificate against a trusted certificate authority we would issue a warning and continue to connect. This is obviously not great behavior because the x509 certificate model is based upon trust of specific CAs. Failure to enforce that trust erodes security. This behavior was defined several years ago when Python did not support loading the system trusted CA store (Python 2.7.9's backports of Python 3's improvements to the "ssl" module enabled this). This commit changes behavior when connecting to abort if the peer certificate can't be validated. With an empty/default Mercurial configuration, the peer certificate can be validated if Python is able to load the system trusted CA store. Environments able to load the system trusted CA store include: * Python 2.7.9+ on most platforms and installations * Python 2.7 distributions with a modern ssl module (e.g. RHEL7's patched 2.7.5 package) * Python shipped on OS X Environments unable to load the system trusted CA store include: * Python 2.6 * Python 2.7 on many existing Linux installs (because they don't ship 2.7.9+ or haven't backported modern ssl module) * Python 2.7.9+ on some installs where Python is unable to locate the system CA store (this is hopefully rare) Users of these Pythongs will need to configure Mercurial to load the system CA store using web.cacerts. This should ideally be performed by packagers (by setting web.cacerts in the global/system hgrc file). Where Mercurial packagers aren't setting this, the linked URL in the new abort message can contain instructions for users. In the future, we may want to add more code for finding the system CA store. For example, many Linux distributions have the CA store at well-known locations (such as /etc/ssl/certs/ca-certificates.crt in the case of Ubuntu). This will enable CA loading to "just work" on more Python configurations and will be best for our users since they won't have to change anything after upgrading to a Mercurial with this patch. We may also want to consider distributing a trusted CA store with Mercurial. Although we should think long and hard about that because most systems have a global CA store and Mercurial should almost certainly use the same store used by everything else on the system.
Sat, 25 Jun 2016 07:32:02 -0700 sslutil: remove out of place comment
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 25 Jun 2016 07:32:02 -0700] rev 29410
sslutil: remove out of place comment This comment likely got orphaned as a result of refactoring in this file. It isn't providing any useful value. So delete it.
Fri, 24 Jun 2016 11:51:00 +0200 largefiles: remove additional blank line between methods in localstore
liscju <piotr.listkiewicz@gmail.com> [Fri, 24 Jun 2016 11:51:00 +0200] rev 29409
largefiles: remove additional blank line between methods in localstore According to the coding style it should be a single blank line between functions.
Thu, 23 Jun 2016 12:37:09 -0700 revset: make head() honor order of subset
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 12:37:09 -0700] rev 29408
revset: make head() honor order of subset The ordering of 'x & head()' was broken in 6a1a4c212d50 (revset: improve head revset performance, 2014-03-13). Presumably due to other optimizations since then, undoing that change to fix the order does not slow down the simple case of "hg log -r 'head()'" mentioned in that commit. I see a small slowdown from ~0.16s to about ~0.19s with 'not 0 & head()', but I'd say it's worth it for the correct output.
Thu, 23 Jun 2016 13:08:10 -0700 revsets: use itervalues() where only values are needed
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 13:08:10 -0700] rev 29407
revsets: use itervalues() where only values are needed I don't think there will be a noticeable speedup, but it removes an unused variable.
Thu, 23 Jun 2016 12:39:05 -0700 revsets: passing a set to baseset() is not wrong
Martin von Zweigbergk <martinvonz@google.com> [Thu, 23 Jun 2016 12:39:05 -0700] rev 29406
revsets: passing a set to baseset() is not wrong Since 69c6e9623bdc (revset: force ascending order for baseset initialized from a set, 2016-04-04), it is safe to pass a revset to a baseset.
Fri, 24 Jun 2016 02:04:43 +0200 pyflakes: use pycompat.pickles to prevent error
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Fri, 24 Jun 2016 02:04:43 +0200] rev 29405
pyflakes: use pycompat.pickles to prevent error The pyflakes in my test box complain about pickle in pycompat. mercurial/pycompat.py:17: 'pickle' imported but unused
Tue, 21 Jun 2016 06:29:23 -0700 rebase: move local variable 'obsoletenotrebased' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29404
rebase: move local variable 'obsoletenotrebased' to the RR class
Tue, 21 Jun 2016 06:29:23 -0700 rebase: move restorestestatus function to be a method of the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29403
rebase: move restorestestatus function to be a method of the RR class
Tue, 21 Jun 2016 06:29:23 -0700 rebase: move local variables related to keeping things unchanged to the RR
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29402
rebase: move local variables related to keeping things unchanged to the RR This commit moves the following variables, local to the rebase function to be fields of the rebaseruntime: -keepf -keepbranchesf -keepopen
Tue, 21 Jun 2016 06:29:23 -0700 rebase: move local variables 'date' and 'extrafns' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29401
rebase: move local variables 'date' and 'extrafns' to the RR class This commit moves the following variables, local to the rebase function to be fields of the rebaseruntime: -date -extrafns
Tue, 21 Jun 2016 06:29:23 -0700 rebase: move collapse-related local variables to the RR class
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 06:29:23 -0700] rev 29400
rebase: move collapse-related local variables to the RR class This commit moves the following variables local to the 'rebase' function to be fields of the rebaseruntime class: -collapsef -collapsemsg
Tue, 21 Jun 2016 07:22:49 -0700 rebase: pass repo, ui and opts objects to the RR class constructor
Kostia Balytskyi <ikostia@fb.com> [Tue, 21 Jun 2016 07:22:49 -0700] rev 29399
rebase: pass repo, ui and opts objects to the RR class constructor
Tue, 21 Jun 2016 00:50:39 +0900 check-code: build translation table for repquote in global for efficiency
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 21 Jun 2016 00:50:39 +0900] rev 29398
check-code: build translation table for repquote in global for efficiency Rebuilding translation table (256 size) at each repquote() invocations is redundant. For example, this patch decreases user time of command invocation below from 18.297s to 13.445s (about -27%) on a Linux box. This command is main part of test-check-code.t. hg locate | xargs python contrib/check-code.py --warnings --per-file=0 This patch adds "_repquote" prefix to functions and variables factored out from repquote() to avoid conflict of name in the future.
Tue, 21 Jun 2016 00:50:39 +0900 check-code: detect "missing _() in ui message" more exactly
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Tue, 21 Jun 2016 00:50:39 +0900] rev 29397
check-code: detect "missing _() in ui message" more exactly Before this patch, "missing _() in ui message" rule overlooks translatable message, which starts with other than alphabet. To detect "missing _() in ui message" more exactly, this patch improves the regexp with assumptions below. - sequence consisting of below might precede "translatable message" in same string token - formatting string, which starts with '%' - escaped character, which starts with 'b' (as replacement of '\\'), or - characters other than '%', 'b' and 'x' (as replacement of alphabet) - any string tokens might precede a string token, which contains "translatable message" This patch builds an input file, which is used to examine "missing _() in ui message" detection, before '"$check_code" stringjoin.py' in test-contrib-check-code.t, because this reduces amount of change churn in subsequent patch. This patch also applies "()" instead of "_()" on messages below to hide false-positives: - messages for ui.debug() or debug commands/tools - contrib/debugshell.py - hgext/win32mbcs.py (ui.write() is used, though) - mercurial/commands.py - _debugchangegroup - debugindex - debuglocks - debugrevlog - debugrevspec - debugtemplate - untranslatable messages - doc/gendoc.py (ReST specific text) - hgext/hgk.py (permission string) - hgext/keyword.py (text written into configuration file) - mercurial/cmdutil.py (formatting strings for JSON)
Wed, 22 Jun 2016 21:30:49 +0100 revlog: add a fast path for "ambiguous identifier"
Jun Wu <quark@fb.com> [Wed, 22 Jun 2016 21:30:49 +0100] rev 29396
revlog: add a fast path for "ambiguous identifier" Before fd1bb7c, if the C index.partialmatch raises RevlogError, the Python code raises "ambiguous identifier" error immediately, which is efficient. fd1bb7c took hidden revisions into consideration and forced the slow path enumerating the changelog to double-check hidden revisions. But it's not necessary if we know the revlog has no hidden revisions. This patch adds back the fast path for unfiltered revlogs.
Thu, 23 Jun 2016 20:45:37 -0400 import-checker: ensure cffi is always a system module
Augie Fackler <raf@durin42.com> [Thu, 23 Jun 2016 20:45:37 -0400] rev 29395
import-checker: ensure cffi is always a system module I've had reports that this is not always happening, so whitelist it the way we whitelist other problem cases.
Thu, 23 Jun 2016 18:21:25 +0100 atomictempfile: add context manager support
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:21:25 +0100] rev 29394
atomictempfile: add context manager support Close the file (moving it in place) on clean context exit, discard when there has been an exception.
Thu, 23 Jun 2016 18:20:58 +0100 atomictempfile: add read to the supported file operations
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:20:58 +0100] rev 29393
atomictempfile: add read to the supported file operations
Thu, 23 Jun 2016 18:18:33 +0100 atomictempfile: remove test ordering
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 18:18:33 +0100] rev 29392
atomictempfile: remove test ordering These tests are independent and numbering only makes it harder to add more and logically group them.
Thu, 23 Jun 2016 17:35:43 +0100 atomictempfile: use a tempdir to keep the test environment clean
Martijn Pieters <mjpieters@fb.com> [Thu, 23 Jun 2016 17:35:43 +0100] rev 29391
atomictempfile: use a tempdir to keep the test environment clean Rather than pre-emptively delete a file, execute the test in a dedicated temporary directory that is removed after each test.
Wed, 22 Jun 2016 22:02:25 +0900 test-revset: show how inconsistent the ordering of compound expressions is
Yuya Nishihara <yuya@tcha.org> [Wed, 22 Jun 2016 22:02:25 +0900] rev 29390
test-revset: show how inconsistent the ordering of compound expressions is This adds mostly broken tests that will be fixed by subsequent patches. We generally don't do that, but this patch series would be hard to review without a set of broken tests. Note that some tests pass thanks to the reordering problem in optimize(). For instance, '2:0 & _intlist(0 1 2)' doesn't fail because it is rewritten as '_intlist(0 1 2) & 2:0'.
Tue, 14 Jun 2016 11:53:55 +0200 i18n: translate abort messages
liscju <piotr.listkiewicz@gmail.com> [Tue, 14 Jun 2016 11:53:55 +0200] rev 29389
i18n: translate abort messages I found a few places where message given to abort is not translated, I don't find any reason to not translate them.
Tue, 07 Jun 2016 12:10:01 +0200 hgweb: display blamed revision once per block in annotate view
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 07 Jun 2016 12:10:01 +0200] rev 29388
hgweb: display blamed revision once per block in annotate view I.e. when a revision blames a block of source lines, only display the revision link on the first line of the block (this is identified by the "blockhead" key in annotate context). This addresses item "Visual grouping of changesets" of the blame improvements plan (https://www.mercurial-scm.org/wiki/BlamePlan) which states: "Typically there are block of lines all attributed to the same revision. Instead of rendering the revision/changeset for every line, we could only render it once per block."
Thu, 02 Jun 2016 16:26:50 +0200 hgweb: highlight data of the current revision in annotate view
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 02 Jun 2016 16:26:50 +0200] rev 29387
hgweb: highlight data of the current revision in annotate view * Distinguish the /annotate/<revision>/<file>#<linenumber> link when it would lead to the current page (i.e. <revision> is the current revision) (style it gray and undecorated). This indicates more clearly that this is a "dead-end" in blame navigation. * Display lines changed in current revision in green.
Tue, 21 Jun 2016 17:15:51 +0100 bashcompletion: show available command-line switches for aliases
Martijn Pieters <mjpieters@fb.com> [Tue, 21 Jun 2016 17:15:51 +0100] rev 29386
bashcompletion: show available command-line switches for aliases When auto-completing hg commands, aliases are listed, but not the available switches for an alias, because `HGPLAIN=1` filters these out. Add a `HGPLAINEXCEPT=alias` exception to resolve this. We make heavy use of aliases that drive hg log with custom revsets, sorting and the -G switch, but want our users to be able to auto-complete any additional command-line switches.
Mon, 20 Jun 2016 23:31:45 +0530 py3: shift from __future__ import absolute import to beginning (issue5269)
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 20 Jun 2016 23:31:45 +0530] rev 29385
py3: shift from __future__ import absolute import to beginning (issue5269)
Mon, 20 Jun 2016 23:24:55 +0200 pull: add help information about pulling active bookmark
liscju <piotr.listkiewicz@gmail.com> [Mon, 20 Jun 2016 23:24:55 +0200] rev 29384
pull: add help information about pulling active bookmark
Fri, 10 Jun 2016 10:31:42 +0200 templates: add support for search webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Fri, 10 Jun 2016 10:31:42 +0200] rev 29383
templates: add support for search webcommand in json style
Mon, 06 Jun 2016 15:14:11 +0200 templates: add support for summary webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Mon, 06 Jun 2016 15:14:11 +0200] rev 29382
templates: add support for summary webcommand in json style Change summary webcommand to yield each element of the shortlog instead of the entire list. This makes generated json more readable since each entry can be formatted separately, instead of returning all the shortlog content in a single string.
Fri, 03 Jun 2016 12:32:42 +0200 templates: add support for filerevision webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Fri, 03 Jun 2016 12:32:42 +0200] rev 29381
templates: add support for filerevision webcommand in json style
Fri, 03 Jun 2016 11:28:22 +0200 templates: add support for filelog webcommand in json style
Laura Médioni <laura.medioni@logilab.fr> [Fri, 03 Jun 2016 11:28:22 +0200] rev 29380
templates: add support for filelog webcommand in json style Modify changelistentry structure to also deliver phase and branch data and use either 'parents' or 'allparents' depending on what is defined in the view, in order to reuse it in filelog structure.
Thu, 09 Jun 2016 12:41:57 +0200 largefiles: make cloning not ask two times about password (issue4883)
liscju <piotr.listkiewicz@gmail.com> [Thu, 09 Jun 2016 12:41:57 +0200] rev 29379
largefiles: make cloning not ask two times about password (issue4883) Before this commit url.opener overwritten stored password for connection with given url/user even when new password for given connection was not filled. This commit makes opener overwrites saved authentication only when it contains password.
Thu, 09 Jun 2016 11:41:36 +0200 url: remember http password database in ui object
liscju <piotr.listkiewicz@gmail.com> [Thu, 09 Jun 2016 11:41:36 +0200] rev 29378
url: remember http password database in ui object This makes http password database stored in ui object. It allows reusing authentication information when we use this database for creating password manager for the new connection.
Sun, 05 Jun 2016 23:36:23 +0200 url: extract password database from password manager
liscju <piotr.listkiewicz@gmail.com> [Sun, 05 Jun 2016 23:36:23 +0200] rev 29377
url: extract password database from password manager So far password manager was keeping authentication information so opening new connection and creating new password manager made all saved authentication information lost. This commit separates password manager and password database to make it possible to reuse saved authentication information. This commit violates code checker because it adds add_password method (name with underscore) to passwordmgr object to provide method required by urllib2.
Wed, 01 Jun 2016 22:58:57 +0200 bookmarks: add 'hg pull -B .' for pulling the active bookmark (issue5258)
liscju <piotr.listkiewicz@gmail.com> [Wed, 01 Jun 2016 22:58:57 +0200] rev 29376
bookmarks: add 'hg pull -B .' for pulling the active bookmark (issue5258)
Sun, 19 Jun 2016 02:17:33 +0900 demandimport: delay loading for "from a import b" with absolute_import
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 19 Jun 2016 02:17:33 +0900] rev 29375
demandimport: delay loading for "from a import b" with absolute_import Before this patch, "from a import b" doesn't delay loading module "b", if absolute_import is enabled, even though "from . import b" does. For example: - it is assumed that extension X has "from P import M" for module M under package P with absolute_import feature - if importing module M is already delayed before loading extension X, loading module M in extension X is delayed until actually referring util, cmdutil, scmutil or so of Mercurial itself should be imported by "from . import M" style before loading extension X - otherwise, module M is loaded immediately at loading extension X, even if extension X itself isn't used at that "hg" command invocation Some minor modules (e.g. filemerge or so) of Mercurial itself aren't imported by "from . import M" style before loading extension X. And of course, external libraries aren't, too. This might cause startup performance problem of hg command, because many bundled extensions already enable absolute_import feature. To delay loading module for "from a import b" with absolute_import feature, this patch does below in "from a (or .a) import b" with absolute_import case: 1. import root module of "name" by system built-in __import__ (referred as _origimport) 2. recurse down the module chain for hierarchical "name" This logic can be shared with non absolute_import case. Therefore, this patch also centralizes it into chainmodules(). 3. and fall through to process elements in "fromlist" for the leaf module of "name" Processing elements in "fromlist" is executed in the code path after "if _pypy: .... else: ..." clause. Therefore, this patch replaces "if _pypy:" with "elif _pypy:" to share it. At 4f1144c3c72b introducing original "work around" for "from a import b" case, elements in "fromlist" were imported with "level=level". But "level" might be grater than 1 (e.g. level=2 in "from .. import b" case) at demandimport() invocation, and importing direct sub-module in "fromlist" with level grater than 1 causes unexpected result. IMHO, this seems main reason of "errors for unknown reason" described in 4f1144c3c72b, and we don't have to worry about it, because this issue was already fixed by 78d05778907b. This is reason why this patch removes "errors for unknown reasons" comment.
Sun, 19 Jun 2016 02:15:09 +0900 import-checker: increase portability for python 2.6.x
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Sun, 19 Jun 2016 02:15:09 +0900] rev 29374
import-checker: increase portability for python 2.6.x Before this patch, fromlocalfunc() assumes that "module" attribute of ast.ImportFrom is None for "from . import a", and Python 2.7.x satisfies this assumption. On the other hand, with Python 2.6.x, "module" attribute of ast.ImportFrom is an empty string for "from . import a", and this causes failure of test-check-module-imports.t.
Fri, 17 Jun 2016 20:06:09 +0100 scmutil: allow access to filecache descriptor on class
Martijn Pieters <mjpieters@fb.com> [Fri, 17 Jun 2016 20:06:09 +0100] rev 29373
scmutil: allow access to filecache descriptor on class To make it easier to patch the wrapped function, make it possible to access the filecache descriptor directly on the class (rather than have to use ClassObject.__dict__['attributename']). Returning `self` when the first argument to `__get__` is `None` makes the descriptor behave the same way `property` objects do.
Fri, 17 Jun 2016 16:59:08 +0100 rebase: do not abort if all changesets have equivalents in the destination
Kostia Balytskyi <ikostia@fb.com> [Fri, 17 Jun 2016 16:59:08 +0100] rev 29372
rebase: do not abort if all changesets have equivalents in the destination
Thu, 16 Jun 2016 15:15:33 -0700 changegroup: don't send empty subdirectory manifest groups
Martin von Zweigbergk <martinvonz@google.com> [Thu, 16 Jun 2016 15:15:33 -0700] rev 29371
changegroup: don't send empty subdirectory manifest groups When grafting/rebasing, it is common for multiple changesets to make the same change to a subdirectory. When writing the revlog for the directory, the revlog code already takes care of not writing the entry again. In 0c2a088ffcc5 (changegroup: prune subdirectory dirlogs too, 2016-02-12), I added the corresponding code in changegroup (not sending entries the client already has), but I forgot to avoid sending the entire changegroup if no nodes remained in the pruned set. Although that's harmless besides the wasted network traffic, the receiving side was checking for it (copied from the changegroup code for handling files). This resulted in the client crashing with: abort: received dir revlog group is empty Fix by simply not emitting a changegroup for the directory if there were no changes is it. This matches how files are handled.
Wed, 15 Jun 2016 23:49:56 +0900 chg: ignore SIGINT while waiting pager termination
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Jun 2016 23:49:56 +0900] rev 29370
chg: ignore SIGINT while waiting pager termination Otherwise the terminal would be left with unclean state. This is what fcc4b55876c3 does.
Wed, 15 Jun 2016 23:32:00 +0900 chg: reset signal handlers to default before waiting pager
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Jun 2016 23:32:00 +0900] rev 29369
chg: reset signal handlers to default before waiting pager Our signal handlers forward signals to the server process, but it will disappear soon after hgc_close(). So we should unregister handlers before hgc_close(). Otherwise chg would abort due to kill(perrpid, sig) failure. The problem is spotted by SIGWINCH while waiting pager termination.
Thu, 16 Jun 2016 09:15:12 -0700 help: document that [subpaths] may rewrite relative paths stable
Mike Miller <mike@mtmxr.com> [Thu, 16 Jun 2016 09:15:12 -0700] rev 29368
help: document that [subpaths] may rewrite relative paths The subpaths substitution logic first attempts to match the absolute repository path, then the relative subrepository path if that failed.
Mon, 13 Jun 2016 05:11:56 +0900 doc: describe detail about checkambig optional argument
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Jun 2016 05:11:56 +0900] rev 29367
doc: describe detail about checkambig optional argument This is followup for patches below, which add checkambig argument to existing function. - 731ced087a4b - 76f1ea360c7e - ce2d81aafbae - a109bf7e0dc2
Sun, 12 Jun 2016 14:07:26 +0900 ui: provide official way to reset internal state per command
Yuya Nishihara <yuya@tcha.org> [Sun, 12 Jun 2016 14:07:26 +0900] rev 29366
ui: provide official way to reset internal state per command This will allow us to clear in-memory password storage per runcommand(). I've updated commandserver to call resetstate() of both ui and repo.ui because they may have different states in theory.
Sat, 11 Jun 2016 10:17:49 +0900 revset: extract function that validates sort() arguments
Yuya Nishihara <yuya@tcha.org> [Sat, 11 Jun 2016 10:17:49 +0900] rev 29365
revset: extract function that validates sort() arguments This function will be used in _optimize() to get rid of noop sort() call while validating its arguments.
Wed, 15 Jun 2016 21:26:45 +0900 revset: build dict of extra sort options before evaluating set
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Jun 2016 21:26:45 +0900] rev 29364
revset: build dict of extra sort options before evaluating set Prepares for extracting a function that only validates sort options.
Sat, 11 Jun 2016 10:15:40 +0900 revset: build list of (key, reverse) pairs before sorting
Yuya Nishihara <yuya@tcha.org> [Sat, 11 Jun 2016 10:15:40 +0900] rev 29363
revset: build list of (key, reverse) pairs before sorting Prepares for extracting a function that only validates sort options.
Wed, 15 Jun 2016 20:37:24 +0900 revset: fix crash on empty sort key
Yuya Nishihara <yuya@tcha.org> [Wed, 15 Jun 2016 20:37:24 +0900] rev 29362
revset: fix crash on empty sort key Make it noop as before 2188f170f5b6. We could change it to an error, but allowing empty key makes some sense for scripting that builds a key string programmatically.
Mon, 13 Jun 2016 22:41:45 +0100 rebase: move local variable 'targetancestors' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Mon, 13 Jun 2016 22:41:45 +0100] rev 29361
rebase: move local variable 'targetancestors' to the RR class
Mon, 13 Jun 2016 22:40:59 +0100 rebase: move local variable 'skipped' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Mon, 13 Jun 2016 22:40:59 +0100] rev 29360
rebase: move local variable 'skipped' to the RR class
Mon, 13 Jun 2016 22:38:54 +0100 rebase: move local variable 'target' to the RR class
Kostia Balytskyi <ikostia@fb.com> [Mon, 13 Jun 2016 22:38:54 +0100] rev 29359
rebase: move local variable 'target' to the RR class
Mon, 13 Jun 2016 22:36:13 +0100 rebase: introduce a rebaseruntime (RR) class
Kostia Balytskyi <ikostia@fb.com> [Mon, 13 Jun 2016 22:36:13 +0100] rev 29358
rebase: introduce a rebaseruntime (RR) class rebaseruntime is a class that will in future contain all of the state necessary to perform rebase operation and have pieces of rebase logic as its methods. This commit introduces the class and moves the following local variables to be its fields: - originalwd - external - state - activebookmark
Wed, 15 Jun 2016 21:36:31 +0100 chg: change default connect timeout to 60 seconds
Jun Wu <quark@fb.com> [Wed, 15 Jun 2016 21:36:31 +0100] rev 29357
chg: change default connect timeout to 60 seconds As discussed at https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-June/085290.html The default 10-second timeout is not enough if the machine is overloaded. Let's increase it to 60 seconds.
Tue, 14 Jun 2016 18:14:42 -0700 tests: increase test-https malform error glob
Durham Goode <durham@fb.com> [Tue, 14 Jun 2016 18:14:42 -0700] rev 29356
tests: increase test-https malform error glob The recently introduced (ecc9b788fd690a0a) test around malformed pem files hard codes an error message which doesn't appear to be cross platform agnostic. On our machines (centos6 if it matters) the test output differs: - abort: error: unknown error* (glob) + abort: error: _ssl.c:330: error:00000000:lib(0):func(0):reason(0) This patch increases the glob to cover the entire error message.
Tue, 14 Jun 2016 11:21:41 +0200 largefiles: make storefactory._openstore public
liscju <piotr.listkiewicz@gmail.com> [Tue, 14 Jun 2016 11:21:41 +0200] rev 29355
largefiles: make storefactory._openstore public In storefactory opening store is the main functionality, so it shouldn't be marked as private with underscore.
Mon, 13 Jun 2016 23:50:26 +0200 bookmarks: abort 'push -B .' when no active bookmark
liscju <piotr.listkiewicz@gmail.com> [Mon, 13 Jun 2016 23:50:26 +0200] rev 29354
bookmarks: abort 'push -B .' when no active bookmark
Mon, 13 Jun 2016 05:11:56 +0900 transaction: avoid ambiguity of file stat at restoring from backup
FUJIWARA Katsunori <foozy@lares.dti.ne.jp> [Mon, 13 Jun 2016 05:11:56 +0900] rev 29353
transaction: avoid ambiguity of file stat at restoring from backup In some cases below, copying from backup is used to restore original contents of a file, which is backuped via addfilegenerator(). If copying keeps ctime, mtime and size of a file, restoring is overlooked, and old contents cached before restoring isn't invalidated as expected. - failure of transaction (from '.hg/journal.backup.*') - rollback of previous transaction (from '.hg/undo.backup.*') To avoid ambiguity of file stat at restoring, this patch invokes util.copyfile() with checkambig=True. This patch is a part of "Exact Cache Validation Plan": https://www.mercurial-scm.org/wiki/ExactCacheValidationPlan
(0) -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip