Sat, 14 Oct 2017 03:13:50 -0400 config: graduate experimental.updatecheck to commands.update.check
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 03:13:50 -0400] rev 34705
config: graduate experimental.updatecheck to commands.update.check .. feature:: New `commands.update.check` feature to adjust constraints on when `hg update` will allow updates with a dirty working copy. also .. bc:: The `experimental.updatecheck` name for the new `commands.update.check` feature is now deprecated, and will be removed after this release. Differential Revision: https://phab.mercurial-scm.org/D1070
Sat, 14 Oct 2017 15:42:38 -0400 hgweb: rewrite most obviously-native-strings to be native strings
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:42:38 -0400] rev 34704
hgweb: rewrite most obviously-native-strings to be native strings This clearly won't be everything, but it unblocks a fair amount of stuff here. Differential Revision: https://phab.mercurial-scm.org/D1079
Thu, 05 Oct 2017 14:48:52 -0400 hgweb: use native strings consistently for querystring parsing
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:48:52 -0400] rev 34703
hgweb: use native strings consistently for querystring parsing Differential Revision: https://phab.mercurial-scm.org/D1078
Thu, 05 Oct 2017 14:48:31 -0400 hgweb: rewrite two X or Y and Z ad-hoc ternaries with Y if X else Z
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:48:31 -0400] rev 34702
hgweb: rewrite two X or Y and Z ad-hoc ternaries with Y if X else Z Just easier to muddle through for my brain now that I don't see the old pattern much anymore. Differential Revision: https://phab.mercurial-scm.org/D1077
Sun, 01 Oct 2017 12:12:34 -0400 httppeer: use native strings for headers
Augie Fackler <augie@google.com> [Sun, 01 Oct 2017 12:12:34 -0400] rev 34701
httppeer: use native strings for headers On Python 3, we need to use unicodes, rather than bytes. This lets test-pull.t get a lot further along. Differential Revision: https://phab.mercurial-scm.org/D887
Thu, 05 Oct 2017 14:29:51 -0400 hgweb: more native string treatment in query string parsing
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:29:51 -0400] rev 34700
hgweb: more native string treatment in query string parsing Differential Revision: https://phab.mercurial-scm.org/D1076
Sat, 14 Oct 2017 14:07:39 -0400 httppeer: pass url to urllib as native str, not bytes
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 14:07:39 -0400] rev 34699
httppeer: pass url to urllib as native str, not bytes Differential Revision: https://phab.mercurial-scm.org/D1075
Sat, 14 Oct 2017 13:33:37 +0200 tersestatus: rework dirnode and tersedir docstrings
Denis Laxalde <denis@laxalde.org> [Sat, 14 Oct 2017 13:33:37 +0200] rev 34698
tersestatus: rework dirnode and tersedir docstrings Follow-up on refactorings 3d6d4b12128e and 5d98674df18a of the original changeset 7e3001b74ab3 by updating the docstrings of dirnode class and tersedir function: * rewrite dirnode.iterfilepaths()'s docstring (the method got renamed and reimplemented in 5d98674df18a); * simplify and update dirnode.tersewalk() to remove reference to 'self' and 'tersedict'; * use the imperative form of verbs in the first sentence of all docstrings. Differential Revision: https://phab.mercurial-scm.org/D1072
Wed, 04 Oct 2017 10:52:50 -0400 bitmanipulation: reformat with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:52:50 -0400] rev 34697
bitmanipulation: reformat with clang-format Mostly un-wrapping over-wrapped definitions. Differential Revision: https://phab.mercurial-scm.org/D1069
Mon, 14 Sep 2015 14:16:31 -0400 hghave: add a check for clang-format
Augie Fackler <augie@google.com> [Mon, 14 Sep 2015 14:16:31 -0400] rev 34696
hghave: add a check for clang-format Differential Revision: https://phab.mercurial-scm.org/D1068
Thu, 05 Oct 2017 14:16:20 -0400 python3: use our bytes-only version of cgi.escape everywhere
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:16:20 -0400] rev 34695
python3: use our bytes-only version of cgi.escape everywhere As suggested by Yuya in D965. Differential Revision: https://phab.mercurial-scm.org/D1067
Sat, 14 Oct 2017 02:57:26 -0400 url: add cgi.escape equivalent for bytestrings
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 02:57:26 -0400] rev 34694
url: add cgi.escape equivalent for bytestrings This seems like a sensible enough place to put it. Differential Revision: https://phab.mercurial-scm.org/D1066
Thu, 05 Oct 2017 14:15:05 -0400 python3: move from using func_name to __name__
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:15:05 -0400] rev 34693
python3: move from using func_name to __name__ Previously reviewed as D964, but required some fixups and therefore seems to need a new revision. Differential Revision: https://phab.mercurial-scm.org/D1065
Sat, 14 Oct 2017 01:20:12 -0400 tests: add globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 01:20:12 -0400] rev 34692
tests: add globs for Windows
Sat, 14 Oct 2017 01:07:59 -0400 test-conflicts: conditionalize for no-symlink platforms
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 01:07:59 -0400] rev 34691
test-conflicts: conditionalize for no-symlink platforms It seems better to create standin files for the symlinks, rather than blacklist the entire tests. Especially since link vs file doesn't seem to affect the tests. There is more instability in test-pathconflicts-{basic,merge}.t that I can't figure out.
Sat, 14 Oct 2017 00:20:59 -0400 test-extdata: conditonalize error message for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 00:20:59 -0400] rev 34690
test-extdata: conditonalize error message for Windows
Sat, 14 Oct 2017 00:07:26 -0400 test-audit-path: fill in missing output for no-symlink case
Matt Harbison <matt_harbison@yahoo.com> [Sat, 14 Oct 2017 00:07:26 -0400] rev 34689
test-audit-path: fill in missing output for no-symlink case It looks like this was meant to go with 989e884d1be9.
Sat, 14 Oct 2017 13:37:14 +0900 test-i18n: guard gettext test appropriately
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 13:37:14 +0900] rev 34688
test-i18n: guard gettext test appropriately
Sun, 08 Oct 2017 13:08:31 +0200 hook: add a 'hashook' function to test for hook existence
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 13:08:31 +0200] rev 34687
hook: add a 'hashook' function to test for hook existence Preparing the data for some hooks can be expensive. Add a function to check if a hook exists so we can skip useless preparation if no hook is configured.
Fri, 13 Oct 2017 22:42:17 +0200 build: for the bootstrap phase of a deb/rpm build pure-py mercurial is enough
muxator <a.mux@inwind.it> [Fri, 13 Oct 2017 22:42:17 +0200] rev 34686
build: for the bootstrap phase of a deb/rpm build pure-py mercurial is enough When bootstrapping a deb/rpm build, packagelib.sh starts performing a local build for the sole purpose of parsing the output of "hg version". Then it "hg archive"s the source code, and builds everything again. For that initial step, we are perfectly good in using a pure python mercurial, without compiling the c modules (base85, bdiff, zstdlib, ...). On my personal system, this cuts down 22 seconds for a package build (the bootstrapping build goes from ~30 to ~8 seconds).
Fri, 13 Oct 2017 12:40:05 -0700 context: add a fast-comparision for arbitraryfilectx and workingfilectx
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:40:05 -0700] rev 34685
context: add a fast-comparision for arbitraryfilectx and workingfilectx Differential Revision: https://phab.mercurial-scm.org/D1056
Fri, 13 Oct 2017 04:02:06 +0530 tersestatus: avoid modifying tersedict
Denis Laxalde <denis@laxalde.org> [Fri, 13 Oct 2017 04:02:06 +0530] rev 34684
tersestatus: avoid modifying tersedict Turn dirnode's methods into generators which can be used to update "tersedict" in caller. So instead of passing the "tersedict" to be mutated here and there, it's now clearer where it is updated as it's purely a local variable to tersedir() function. While I was here, I renamed _processtersestatus to tersewalk and _addfilestotersed to iterfilepaths. Differential Revision: https://phab.mercurial-scm.org/D1043
Wed, 11 Oct 2017 21:19:19 +0200 tersestatus: make methods part of the dirnode class
Denis Laxalde <denis@laxalde.org> [Wed, 11 Oct 2017 21:19:19 +0200] rev 34683
tersestatus: make methods part of the dirnode class Differential Revision: https://phab.mercurial-scm.org/D1042
Fri, 06 Oct 2017 20:54:23 +0530 tersestatus: re-implement the functionality to terse the status
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Oct 2017 20:54:23 +0530] rev 34682
tersestatus: re-implement the functionality to terse the status The previous terse status implementation was hacking around os.listdir() and was flaky. There have been a lot of instances of mercurial buildbots failing and google's internal builds failing because of the hacky implementation of terse status. Even though I wrote the last implementation but it was hard for me to find the reason for the flake. The new implementation can be slower than the old one but is clean and easy to understand. In this we create a node object for each directory and create a tree like structure starting from the root of the working copy. While building the tree like structure we store some information on the nodes which will be helpful for deciding later whether we can terse the dir or not. Once the whole tree is build we traverse and built the list of files for each status with required tersing. There is no behaviour change as the old test, test-status-terse.t passes with the new implementation. Differential Revision: https://phab.mercurial-scm.org/D985
Fri, 13 Oct 2017 12:54:46 -0700 context: add is `isinmemory()` to filectx
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:54:46 -0700] rev 34681
context: add is `isinmemory()` to filectx This will make it easier to skip certain behavior when running an in-memory merge. Differential Revision: https://phab.mercurial-scm.org/D1061
Fri, 06 Oct 2017 06:48:43 -0700 merge: ensure that we always commit the mergestate
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34680
merge: ensure that we always commit the mergestate In future patches, we may halt the merge process based on configuration or user requests by raising exceptions. We need to ensure that the mergestate is unconditionally committed even when such an exception is raised. Depends on D930. Differential Revision: https://phab.mercurial-scm.org/D931
Fri, 06 Oct 2017 06:48:43 -0700 merge: add tests to show current behavior on failed filemerges
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34679
merge: add tests to show current behavior on failed filemerges Currently, failed file merges will nevertheless force the user to continue attempting to merge all additional unresolved files. Future patches will allow the user to halt the merge process instead. This patch first introduces a test demonstrating the current bejhavior so the upcoming changes are more obvious. Differential Revision: https://phab.mercurial-scm.org/D930
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: move the _dirfoldmap to dirstatemap
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34678
dirstate: move the _dirfoldmap to dirstatemap Now that dirstatemap is the source of truth for the list of directories, let's move _dirfoldmap on to it. This pattern of moving cached variables onto the dirstate map makes it easier to invalidate them, as seen by how the cache invalidation functions are slowly shrinking to just be recreating the dirstatemap instance. Differential Revision: https://phab.mercurial-scm.org/D983
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: remove _dirs property cache
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34677
dirstate: remove _dirs property cache Now that dirs is source of truthed on the dirstatemap, let's get rid of the _dirs propertycache on the dirstate. Differential Revision: https://phab.mercurial-scm.org/D982
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: remove _filefoldmap property cache
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34676
dirstate: remove _filefoldmap property cache Now that the filefoldmap is source of truthed on the dirstatemap, let's get rid of the property cache on the dirstate. Differential Revision: https://phab.mercurial-scm.org/D981
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: move identity to dirstatemap
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34675
dirstate: move identity to dirstatemap Moving the identity function to the dirstatemap class will allow alternative dirstate implementations to replace the implementation. Differential Revision: https://phab.mercurial-scm.org/D980
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: move nonnormal and otherparent sets to dirstatemap
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34674
dirstate: move nonnormal and otherparent sets to dirstatemap As part of separating dirstate business logic from storage, let's move the nonnormal and otherparent storage to the dirstatemap class. This will allow alternative dirstate storage to persist these sets instead of recomputing them. Differential Revision: https://phab.mercurial-scm.org/D979
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: move write into dirstatemap
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34673
dirstate: move write into dirstatemap As part of separating the dirstate business logic from the dirstate storage logic, let's move the serialization code down into dirstatemap. Differential Revision: https://phab.mercurial-scm.org/D978
Thu, 05 Oct 2017 11:34:41 -0700 dirstate: move _read into dirstatemap
Durham Goode <durham@fb.com> [Thu, 05 Oct 2017 11:34:41 -0700] rev 34672
dirstate: move _read into dirstatemap As part of separating the dirstate business logic from the storage, let's move the read code into the new dirstatemap class. Differential Revision: https://phab.mercurial-scm.org/D977
Sun, 08 Oct 2017 21:29:24 +0200 configitems: register the 'templates' section
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:29:24 +0200] rev 34671
configitems: register the 'templates' section
Wed, 11 Oct 2017 05:01:55 +0200 configitems: register the 'paths' config section
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 05:01:55 +0200] rev 34670
configitems: register the 'paths' config section
Wed, 11 Oct 2017 02:26:09 +0200 configitems: register the 'pager.attend-.*' options
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 02:26:09 +0200] rev 34669
configitems: register the 'pager.attend-.*' options
Fri, 13 Oct 2017 16:39:06 +0200 configitems: register the 'hooks' config section
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 16:39:06 +0200] rev 34668
configitems: register the 'hooks' config section
Tue, 10 Oct 2017 10:48:47 +0200 configitems: register the 'extensions' section
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 10:48:47 +0200] rev 34667
configitems: register the 'extensions' section
Sun, 08 Oct 2017 20:39:51 +0200 configitems: register the 'defaults' section
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:39:51 +0200] rev 34666
configitems: register the 'defaults' section
Sun, 08 Oct 2017 21:02:02 +0200 configitems: register the 'committemplate' section
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:02:02 +0200] rev 34665
configitems: register the 'committemplate' section
Tue, 10 Oct 2017 10:49:28 +0200 configitems: register the 'color' section
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 10:49:28 +0200] rev 34664
configitems: register the 'color' section
Sun, 08 Oct 2017 20:26:25 +0200 configitems: register the 'alias' section
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:26:25 +0200] rev 34663
configitems: register the 'alias' section
Tue, 10 Oct 2017 10:49:15 +0200 configitems: allow for the registration of "generic" config item
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 10:49:15 +0200] rev 34662
configitems: allow for the registration of "generic" config item Some section can contains arbitrary keys (eg: color, alias, extensions). We add a way to register some generic config items for them. This is necessary to get all the config registered. We use a regular expression because some sub- attributes (eg: hooks.xxx.priority) can define default value on their own.
Thu, 12 Oct 2017 09:39:50 +0200 transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 12 Oct 2017 09:39:50 +0200] rev 34661
transaction-summary: show the range of new revisions upon pull/unbundle (BC) Upon pull or unbundle, we display a message with the range of new revisions fetched. This revision range could readily be used after a pull to look out what's new with 'hg log'. The algorithm takes care of filtering "obsolete" revisions that might be present in transaction's "changes" but should not be displayed to the end user.
Fri, 13 Oct 2017 21:36:10 +0900 i18n: cache translated messages per encoding
Yuya Nishihara <yuya@tcha.org> [Fri, 13 Oct 2017 21:36:10 +0900] rev 34660
i18n: cache translated messages per encoding This is a simpler workaround alternative to D958, "i18n: clean msgcache when encoding changes." The cache won't be bloated unless you run tons of commands with different --encoding options on command server, or serve many repositories of different web.encoding options on hgweb. The test was originally written by Jun Wu. Differential Revision: https://phab.mercurial-scm.org/D1053
Thu, 12 Oct 2017 22:09:11 +0900 templater: fix ifcontains() to handle type mismatch gracefully
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Oct 2017 22:09:11 +0900] rev 34659
templater: fix ifcontains() to handle type mismatch gracefully This was unintentionally changed in ee0d74083a22. Since ifcontains() takes needle of any types, it shouldn't abort depending on the given container type.
Thu, 12 Oct 2017 21:56:13 +0900 help: use single quotes in ``template example``
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Oct 2017 21:56:13 +0900] rev 34658
help: use single quotes in ``template example`` It was hard to read because ``""`` was rendered as """".
Thu, 12 Oct 2017 21:48:02 +0900 help: hide template keywords of obsolescence as they are still experimental
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Oct 2017 21:48:02 +0900] rev 34657
help: hide template keywords of obsolescence as they are still experimental
Thu, 12 Oct 2017 21:42:42 +0900 help: fix formatting of template keywords
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Oct 2017 21:42:42 +0900] rev 34656
help: fix formatting of template keywords Our minirst formatter can't render multi-paragraph definition lists well. Also added periods where appropriate.
Thu, 12 Oct 2017 22:21:14 +0900 chg: remove outdated rule to start test server
Yuya Nishihara <yuya@tcha.org> [Thu, 12 Oct 2017 22:21:14 +0900] rev 34655
chg: remove outdated rule to start test server This rule is no longer useful because chg daemon may be killed and respawned per config/environment hash. We can't reliably run a daemon in foreground.
Fri, 13 Oct 2017 00:22:54 +0900 configitems: drop redundant default of web.allow<archtype>
Yuya Nishihara <yuya@tcha.org> [Fri, 13 Oct 2017 00:22:54 +0900] rev 34654
configitems: drop redundant default of web.allow<archtype> Otherwise develwarn would be sent to stderr. I've added blackbox logging to capture warnings.
Fri, 13 Oct 2017 00:14:28 +0900 configitems: correct default values of web.allow<archtype> and web.hidden
Yuya Nishihara <yuya@tcha.org> [Fri, 13 Oct 2017 00:14:28 +0900] rev 34653
configitems: correct default values of web.allow<archtype> and web.hidden The default of ui.configbool() is False unless explicitly specified.
Fri, 13 Oct 2017 22:38:24 +0900 bdiff: include compat.h in header to define ssize_t
Yuya Nishihara <yuya@tcha.org> [Fri, 13 Oct 2017 22:38:24 +0900] rev 34652
bdiff: include compat.h in header to define ssize_t Before ff4c9c6263de, compat.h was included first so it happened to work. But we shouldn't rely on the include order.
Sat, 30 Sep 2017 22:37:20 +0100 test: add an extra case for obsolescence distributed case
Boris Feld <boris.feld@octobus.net> [Sat, 30 Sep 2017 22:37:20 +0100] rev 34651
test: add an extra case for obsolescence distributed case This changeset introduces a new documented test case for a distributed obsolescence scenario. The scenario involves a simple case where some obsolescence markers are retrieved before the changeset they affect. See the test case documentation for details. We also test variants where the changesets are added from a bundle.
Fri, 29 Sep 2017 19:59:15 +0100 test: add a test file dedicated to an important distributed case
Boris Feld <boris.feld@octobus.net> [Fri, 29 Sep 2017 19:59:15 +0100] rev 34650
test: add a test file dedicated to an important distributed case This test file introduces documented test case for obsolescence markers usage that are important to distributed workflow cases. In the distributed case, new changesets, markers, and phases can be added in orders that would not happen during the local only usage. Documenting these scenarios and test them is important as we make progress with various obsolescence aspects.
Tue, 10 Oct 2017 23:19:35 +0530 repoview: remove incorrect documentation of the function
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 10 Oct 2017 23:19:35 +0530] rev 34649
repoview: remove incorrect documentation of the function In repoview.py, computeunserved() and computemutable() functions had the same documentation. The documentation of computemutable() is wrong. I was unable to write documentation for the function but it's better to not having the documentation than having it wrong. Differential Revision: https://phab.mercurial-scm.org/D1016
Thu, 12 Oct 2017 09:34:58 -0700 check-code: suggest pycompat.is(posix|windows|darwin)
Jun Wu <quark@fb.com> [Thu, 12 Oct 2017 09:34:58 -0700] rev 34648
check-code: suggest pycompat.is(posix|windows|darwin) Differential Revision: https://phab.mercurial-scm.org/D1037
Thu, 12 Oct 2017 23:34:34 -0700 codemod: use pycompat.isdarwin
Jun Wu <quark@fb.com> [Thu, 12 Oct 2017 23:34:34 -0700] rev 34647
codemod: use pycompat.isdarwin This is done by: sed -i "s/pycompat\.sysplatform == 'darwin'/pycompat.isdarwin/" **/*.py Plus a manual change to `sslutil.py` which involves indentation change that cannot be done by `sed`. Differential Revision: https://phab.mercurial-scm.org/D1035
Thu, 12 Oct 2017 09:04:22 -0700 codemod: use pycompat.isposix
Jun Wu <quark@fb.com> [Thu, 12 Oct 2017 09:04:22 -0700] rev 34646
codemod: use pycompat.isposix This is done by: sed -i "s/pycompat\.osname == 'posix'/pycompat.isposix/" **/*.py Differential Revision: https://phab.mercurial-scm.org/D1036
Thu, 12 Oct 2017 23:30:46 -0700 codemod: use pycompat.iswindows
Jun Wu <quark@fb.com> [Thu, 12 Oct 2017 23:30:46 -0700] rev 34645
codemod: use pycompat.iswindows This is done by: sed -i "s/pycompat\.osname == 'nt'/pycompat.iswindows/" **/*.py sed -i "s/pycompat\.osname != 'nt'/not pycompat.iswindows/" **/*.py sed -i 's/pycompat.osname == "nt"/pycompat.iswindows/' **/*.py Differential Revision: https://phab.mercurial-scm.org/D1034
Thu, 12 Oct 2017 19:20:04 -0700 pycompat: define operating system constants
Jun Wu <quark@fb.com> [Thu, 12 Oct 2017 19:20:04 -0700] rev 34644
pycompat: define operating system constants As suggested by Ryan in D1019, it's cleaner if we use defined constants instead of `osname == 'nt'` everywhere. Differential Revision: https://phab.mercurial-scm.org/D1033
Wed, 11 Oct 2017 21:24:32 -0700 hgweb: do not import uuid immediately to avoid its side effect
Jun Wu <quark@fb.com> [Wed, 11 Oct 2017 21:24:32 -0700] rev 34643
hgweb: do not import uuid immediately to avoid its side effect With hgdemandimport disabled (chg's case), `import uuid` has an immediate side effect calling `ctypes.util.find_library` trying to locate the `libuuid` library. This happens at `import` time before `dispatch.run()`. The call trace is like: File "hg/hg", line 54, in <module> from mercurial import ( File "hg/mercurial/dispatch.py", line 24, in <module> from . import ( File "hg/mercurial/commands.py", line 23, in <module> from . import ( File "hg/mercurial/help.py", line 33, in <module> from .hgweb import ( File "hg/mercurial/hgweb/__init__.py", line 20, in <module> from . import ( File "hg/mercurial/hgweb/hgweb_mod.py", line 14, in <module> from .common import ( File "hg/mercurial/hgweb/common.py", line 15, in <module> import uuid File "/usr/lib64/python2.7/uuid.py", line 404, in <module> lib = ctypes.CDLL(ctypes.util.find_library(libname)) The problem is, `ctypes.util.find_library` will execute `sh -c '/sbin/ldconfig -p 2>/dev/null'` on Python <= 2.7.12. The output of `sh` may pollute the terminal: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory This patch moves `import uuid` so its side-effect can only happen after the cwd check in `dispatch._getlocal`. Therefore the terminal won't be polluted by importing `uuid`. Differential Revision: https://phab.mercurial-scm.org/D1024
Wed, 11 Oct 2017 17:42:57 -0700 check-code: forbid platform.system()
Jun Wu <quark@fb.com> [Wed, 11 Oct 2017 17:42:57 -0700] rev 34642
check-code: forbid platform.system() See the previous patches for the reason. Differential Revision: https://phab.mercurial-scm.org/D1021
Wed, 11 Oct 2017 17:42:35 -0700 largefiles: do not use platform.system()
Jun Wu <quark@fb.com> [Wed, 11 Oct 2017 17:42:35 -0700] rev 34641
largefiles: do not use platform.system() See the previous patch for the reason. Differential Revision: https://phab.mercurial-scm.org/D1020
Wed, 11 Oct 2017 17:38:20 -0700 logtoprocess: do not use platform.system()
Jun Wu <quark@fb.com> [Wed, 11 Oct 2017 17:38:20 -0700] rev 34640
logtoprocess: do not use platform.system() See the previous patch for the reason. Differential Revision: https://phab.mercurial-scm.org/D1019
Wed, 11 Oct 2017 17:27:21 -0700 selectors2: do not use platform.system()
Jun Wu <quark@fb.com> [Wed, 11 Oct 2017 17:27:21 -0700] rev 34639
selectors2: do not use platform.system() `platform.system()` may have a side effect spawning a shell executing `uname -p`, which may print a warning when the current directory is removed: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory This patch changes selectors2 to test the `sys.platform` string, which is a much safer way to detect Jython. Jython's `sys.platform` looks like this: Jython 2.7.1 (default:0df7adb1b397, Jun 30 2017, 19:02:43) [OpenJDK 64-Bit Server VM (Oracle Corporation)] on java1.8.0_144 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.platform 'java1.8.0_144 ( ==linux2 for targets )' Differential Revision: https://phab.mercurial-scm.org/D1018
Mon, 09 Oct 2017 12:42:28 -0700 dispatch: when --pager=no is passed, also disable pager on req.repo.ui
Jun Wu <quark@fb.com> [Mon, 09 Oct 2017 12:42:28 -0700] rev 34638
dispatch: when --pager=no is passed, also disable pager on req.repo.ui With a future chg change, `req.repo` could be set and currently it is unaffected by `--pager=on`. This patch makes it so. This could make one of the test cases in `test-pager.t` pass with future chg changes. Differential Revision: https://phab.mercurial-scm.org/D990
Wed, 11 Oct 2017 10:36:59 -0700 bundle2: immediate exit for ctrl+c (issue5692)
Durham Goode <durham@fb.com> [Wed, 11 Oct 2017 10:36:59 -0700] rev 34637
bundle2: immediate exit for ctrl+c (issue5692) 21c2df59a regressed bundle2 by catching all exceptions and trying to handle them. The old behavior was to allow KeyboardInterrupts to throw and not have graceful cleanup, which allowed it to exit immediately. Let's go back to that behavior. Differential Revision: https://phab.mercurial-scm.org/D960
Wed, 04 Oct 2017 11:04:18 -0400 exewrapper: format with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 11:04:18 -0400] rev 34636
exewrapper: format with clang-format A few *s move around, some spaces around parens, a couple of braces. Nothing remarkable. Differential Revision: https://phab.mercurial-scm.org/D1032
Wed, 04 Oct 2017 11:02:44 -0400 util: add clang-format control comment around struct and format macro
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 11:02:44 -0400] rev 34635
util: add clang-format control comment around struct and format macro clang-format is not a fan of PyObject_HEAD. Differential Revision: https://phab.mercurial-scm.org/D1031
Wed, 04 Oct 2017 10:57:23 -0400 mpatch: reflow two oddly formatted else blocks with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:57:23 -0400] rev 34634
mpatch: reflow two oddly formatted else blocks with clang-format Differential Revision: https://phab.mercurial-scm.org/D1029
Wed, 04 Oct 2017 10:55:51 -0400 mpatch: re-wrap wide line with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:55:51 -0400] rev 34633
mpatch: re-wrap wide line with clang-format Differential Revision: https://phab.mercurial-scm.org/D1027
Wed, 04 Oct 2017 10:51:39 -0400 bdiff: remove trailing newlines
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:51:39 -0400] rev 34632
bdiff: remove trailing newlines Differential Revision: https://phab.mercurial-scm.org/D1009
Wed, 04 Oct 2017 10:51:25 -0400 bdiff: rewrap function prototypes per clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:51:25 -0400] rev 34631
bdiff: rewrap function prototypes per clang-format Differential Revision: https://phab.mercurial-scm.org/D1008
Wed, 04 Oct 2017 10:50:54 -0400 bdiff: re-wrap lines per clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:50:54 -0400] rev 34630
bdiff: re-wrap lines per clang-format A few too-wide lines corrected, and some places where clang-format prefers to wrap after the binary operator instead of before. I don't feel strongly, so I'm leaving the auto-format result as "after the binary operator". Differential Revision: https://phab.mercurial-scm.org/D1007
Wed, 04 Oct 2017 10:49:34 -0400 bdiff: remove extra space after * per clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:49:34 -0400] rev 34629
bdiff: remove extra space after * per clang-format Differential Revision: https://phab.mercurial-scm.org/D1006
Wed, 04 Oct 2017 10:48:46 -0400 bdiff: fix misplaced comma in macro definition with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:48:46 -0400] rev 34628
bdiff: fix misplaced comma in macro definition with clang-format Differential Revision: https://phab.mercurial-scm.org/D1005
Wed, 04 Oct 2017 10:47:51 -0400 bdiff: format header file with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:47:51 -0400] rev 34627
bdiff: format header file with clang-format Differential Revision: https://phab.mercurial-scm.org/D1004
Wed, 04 Oct 2017 10:47:19 -0400 bdiff: sort includes using clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:47:19 -0400] rev 34626
bdiff: sort includes using clang-format Differential Revision: https://phab.mercurial-scm.org/D1003
Wed, 11 Oct 2017 01:47:00 +0200 build: "make deb" failed when the base path contained spaces
muxator <a.mux@inwind.it> [Wed, 11 Oct 2017 01:47:00 +0200] rev 34625
build: "make deb" failed when the base path contained spaces With these changes, all the commands triggered by "make deb" use proper quoting and succeed even when invoked from a directory containing spaces.
Wed, 11 Oct 2017 02:06:12 +0200 build: chg build was failing when the base directory contained spaces
muxator <a.mux@inwind.it> [Wed, 11 Oct 2017 02:06:12 +0200] rev 34624
build: chg build was failing when the base directory contained spaces
Wed, 11 Oct 2017 01:37:43 +0200 build: initial version detection by make deb/rpm was missing quoting
muxator <a.mux@inwind.it> [Wed, 11 Oct 2017 01:37:43 +0200] rev 34623
build: initial version detection by make deb/rpm was missing quoting
Wed, 11 Oct 2017 01:19:48 +0200 build: make install in "/doc" failed if the destination dir contained spaces
muxator <a.mux@inwind.it> [Wed, 11 Oct 2017 01:19:48 +0200] rev 34622
build: make install in "/doc" failed if the destination dir contained spaces This and the following commits try to add the necessary quoting in the build scripts to make the process more robust. The target for now is rendering "make deb" successful even when the base directory contains spaces (eg. "/opt/mercu rial"). The build process should succeed without scattering files in spurious directories (eg.: "/opt/mercu/usr/bin/hg").
Thu, 05 Oct 2017 16:13:05 +0200 strip: take branch into account when selecting update target (issue5540)
Paul Morelle <paul.morelle@octobus.net> [Thu, 05 Oct 2017 16:13:05 +0200] rev 34621
strip: take branch into account when selecting update target (issue5540) Test contributed by Matt Harbison Keep the same behavior in most cases (i.e. first parent of the first root of stripped changsets), but if the branch differs from wdir's, try to find another parent of stripped commits that is on the same branch.
Wed, 04 Oct 2017 18:49:09 +0200 scmutil: factor out building of transaction summary callback
Denis Laxalde <denis.laxalde@logilab.fr> [Wed, 04 Oct 2017 18:49:09 +0200] rev 34620
scmutil: factor out building of transaction summary callback In registersummarycallback(), we extra generic bits of the existing "reportsummary" function into a decorator which will be used in forthcoming changesets to add new summary callbacks.
Sun, 01 Oct 2017 09:52:44 +0200 scmutil: factor out transaction name lookup in registersummarycallback()
Denis Laxalde <denis.laxalde@logilab.fr> [Sun, 01 Oct 2017 09:52:44 +0200] rev 34619
scmutil: factor out transaction name lookup in registersummarycallback() Add an inner txmatch function in registersummarycallback() factoring out the logic to determine if the transaction matches a particular sources set. We'll reuse this function to add some new report logic in the new changeset.
Wed, 11 Oct 2017 05:23:45 +0200 configitems: register the annotate diff options
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 05:23:45 +0200] rev 34618
configitems: register the annotate diff options
Wed, 11 Oct 2017 05:42:56 +0200 configitems: register the 'convert.cvsps.logencoding' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 05:42:56 +0200] rev 34617
configitems: register the 'convert.cvsps.logencoding' config
Wed, 11 Oct 2017 05:36:10 +0200 configitems: register the 'ui.interface.chunkselector' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 05:36:10 +0200] rev 34616
configitems: register the 'ui.interface.chunkselector' config
Wed, 11 Oct 2017 05:18:20 +0200 configitems: register the 'experimental.archivemetatemplate' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 05:18:20 +0200] rev 34615
configitems: register the 'experimental.archivemetatemplate' config
Wed, 11 Oct 2017 04:57:54 +0200 configitems: register the 'rebase.singletransaction' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:57:54 +0200] rev 34614
configitems: register the 'rebase.singletransaction' config
Wed, 11 Oct 2017 17:51:40 +0200 configitems: register the 'server.bundle*' family of config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 17:51:40 +0200] rev 34613
configitems: register the 'server.bundle*' family of config All these config use the same function specifying a default value. We need to register them all at the same time.
Wed, 11 Oct 2017 04:16:17 +0200 configitems: register the 'web.logourl' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:16:17 +0200] rev 34612
configitems: register the 'web.logourl' config
Wed, 11 Oct 2017 04:16:05 +0200 configitems: register the 'web.logoimg' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:16:05 +0200] rev 34611
configitems: register the 'web.logoimg' config
Wed, 11 Oct 2017 04:15:48 +0200 configitems: register the 'web.labels' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:15:48 +0200] rev 34610
configitems: register the 'web.labels' config
Wed, 11 Oct 2017 04:15:37 +0200 configitems: register the 'web.hidden' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:15:37 +0200] rev 34609
configitems: register the 'web.hidden' config
Wed, 11 Oct 2017 04:15:24 +0200 configitems: register the 'web.guessmime' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:15:24 +0200] rev 34608
configitems: register the 'web.guessmime' config
Wed, 11 Oct 2017 04:15:08 +0200 configitems: register the 'web.deny_push' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:15:08 +0200] rev 34607
configitems: register the 'web.deny_push' config
Wed, 11 Oct 2017 04:14:44 +0200 configitems: register the 'web.contact' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:14:44 +0200] rev 34606
configitems: register the 'web.contact' config
Wed, 11 Oct 2017 04:14:33 +0200 configitems: register the 'web.cache' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:14:33 +0200] rev 34605
configitems: register the 'web.cache' config
Wed, 11 Oct 2017 04:14:14 +0200 configitems: register the 'web.allowzip' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:14:14 +0200] rev 34604
configitems: register the 'web.allowzip' config
Wed, 11 Oct 2017 04:14:01 +0200 configitems: register the 'web.allow_push' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:14:01 +0200] rev 34603
configitems: register the 'web.allow_push' config
Wed, 11 Oct 2017 04:12:50 +0200 configitems: register the 'web.allowpull' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:12:50 +0200] rev 34602
configitems: register the 'web.allowpull' config
Wed, 11 Oct 2017 04:12:34 +0200 configitems: register the 'web.allowgz' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:12:34 +0200] rev 34601
configitems: register the 'web.allowgz' config
Wed, 11 Oct 2017 04:12:23 +0200 configitems: register the 'web.allowbz2' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:12:23 +0200] rev 34600
configitems: register the 'web.allowbz2' config
Wed, 11 Oct 2017 03:54:19 +0200 configitems: register the 'email.reply-to' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:54:19 +0200] rev 34599
configitems: register the 'email.reply-to' config
Wed, 11 Oct 2017 03:54:05 +0200 configitems: register the 'email.cc' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:54:05 +0200] rev 34598
configitems: register the 'email.cc' config
Wed, 11 Oct 2017 03:53:58 +0200 configitems: register the 'email.bcc' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:53:58 +0200] rev 34597
configitems: register the 'email.bcc' config
Wed, 11 Oct 2017 03:50:24 +0200 configitems: register the 'logtoprocess.uiblocked' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:50:24 +0200] rev 34596
configitems: register the 'logtoprocess.uiblocked' config
Wed, 11 Oct 2017 03:50:14 +0200 configitems: register the 'logtoprocess.develwarn' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:50:14 +0200] rev 34595
configitems: register the 'logtoprocess.develwarn' config
Wed, 11 Oct 2017 03:49:47 +0200 configitems: register the 'logtoprocess.command' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:49:47 +0200] rev 34594
configitems: register the 'logtoprocess.command' config
Wed, 11 Oct 2017 03:49:21 +0200 configitems: register the 'logtoprocess.commandfinish' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:49:21 +0200] rev 34593
configitems: register the 'logtoprocess.commandfinish' config
Wed, 11 Oct 2017 03:49:04 +0200 configitems: register the 'logtoprocess.commandexception' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:49:04 +0200] rev 34592
configitems: register the 'logtoprocess.commandexception' config
Wed, 11 Oct 2017 03:45:14 +0200 configitems: register the 'pager.pager' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:45:14 +0200] rev 34591
configitems: register the 'pager.pager' config
Wed, 11 Oct 2017 03:41:48 +0200 configitems: register the 'web.maxchanges' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:41:48 +0200] rev 34590
configitems: register the 'web.maxchanges' config
Wed, 11 Oct 2017 03:41:01 +0200 configitems: register the 'web.maxfiles' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:41:01 +0200] rev 34589
configitems: register the 'web.maxfiles' config
Wed, 11 Oct 2017 03:39:21 +0200 configitems: register the 'web.maxshortchanges' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:39:21 +0200] rev 34588
configitems: register the 'web.maxshortchanges' config
Wed, 11 Oct 2017 03:36:44 +0200 configitems: register the 'web.motd' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:36:44 +0200] rev 34587
configitems: register the 'web.motd' config
Wed, 11 Oct 2017 03:32:59 +0200 configitems: register the 'web.name' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:32:59 +0200] rev 34586
configitems: register the 'web.name' config
Wed, 11 Oct 2017 03:29:09 +0200 configitems: register the 'web.push_ssl' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:29:09 +0200] rev 34585
configitems: register the 'web.push_ssl' config
Wed, 11 Oct 2017 03:18:04 +0200 configitems: register the 'web.view' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 03:18:04 +0200] rev 34584
configitems: register the 'web.view' config
Wed, 11 Oct 2017 15:25:57 +0200 configitems: fix registration for 'blackbox.track' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 15:25:57 +0200] rev 34583
configitems: fix registration for 'blackbox.track' config Default mutable values could be problematic. Use a lambda that returns the value instead. Thanks to martin for catching this bug.
Tue, 10 Oct 2017 10:27:35 -0500 status: copy-edit and improve --terse and --verbose help
Kevin Bullock <kbullock+mercurial@ringworld.org> [Tue, 10 Oct 2017 10:27:35 -0500] rev 34582
status: copy-edit and improve --terse and --verbose help
Tue, 19 Sep 2017 23:13:46 +0900 templater: store revisions as ints so min/max won't compare them as strings
Yuya Nishihara <yuya@tcha.org> [Tue, 19 Sep 2017 23:13:46 +0900] rev 34581
templater: store revisions as ints so min/max won't compare them as strings Because a template value has no explicit type (like ancient PHP), ifcontains() has to coerce the type of the needle. Before, it was always converted to a string, which meant any container type should be a list/dict of strings. This no longer works since we've introduced min/max functions. In order to work around the untyped nature of templater, this patch adds a type specifier to hybrid dict/list. It isn't named as "valuetype" since the _hybrid class can also wrap a dict.
Mon, 09 Oct 2017 12:47:22 -0700 fsmonitor: update to match new dirstate refactor
Durham Goode <durham@fb.com> [Mon, 09 Oct 2017 12:47:22 -0700] rev 34580
fsmonitor: update to match new dirstate refactor The dirstate was refactored so dirstate._map is now at dirstate._map._map. Same for _copymap, is not _map.copymap. It seems none of the mercurial tests cover this stuff, but it was caught by our Facebook extension tests. Differential Revision: https://phab.mercurial-scm.org/D945
Tue, 26 Sep 2017 08:37:17 +0200 doc: rename README to README.rst
David Demelier <markand@malikania.fr> [Tue, 26 Sep 2017 08:37:17 +0200] rev 34579
doc: rename README to README.rst Many hosting services consider README without extension as plain text. By using .rst extension, we bring better formatting on many services (e.g. bitbucket).
Mon, 09 Oct 2017 08:35:55 +0200 test: use current user in the multi-user amend scenario
Boris Feld <boris.feld@octobus.net> [Mon, 09 Oct 2017 08:35:55 +0200] rev 34578
test: use current user in the multi-user amend scenario The obsfate template keyword that will be introduced in a later patch distinguish between current user and other users when displaying the obsfate users. Update the test before for clarity.
Fri, 06 Oct 2017 17:05:19 +0200 test: cleanup verbosity variant from fatelog test
Boris Feld <boris.feld@octobus.net> [Fri, 06 Oct 2017 17:05:19 +0200] rev 34577
test: cleanup verbosity variant from fatelog test Unlike the '{obsfate}' keyword defined in 'hg-evolve', the definition of hg fatelog in test-obsmarker-template.t is not verbosity dependent. Remove useless call to fatelog -v and fatelog -q.
Fri, 06 Oct 2017 16:36:41 +0200 test: rename obsfate template alias
Boris Feld <boris.feld@octobus.net> [Fri, 06 Oct 2017 16:36:41 +0200] rev 34576
test: rename obsfate template alias We will introduce an obsfate templatekw in the next patch that will conflict with the obsfate template in the test file, rename the one in test file to avoid this collision.
Fri, 06 Oct 2017 16:15:24 +0200 obsolete: add a devel.user.obsmarker
Boris Feld <boris.feld@octobus.net> [Fri, 06 Oct 2017 16:15:24 +0200] rev 34575
obsolete: add a devel.user.obsmarker In tests, we often want to use a different username in obs-markers without changing the default user. Add a 'devel.user.obsmarker'.
Thu, 05 Oct 2017 15:11:34 +0200 strip: factor out update target selection
Paul Morelle <paul.morelle@octobus.net> [Thu, 05 Oct 2017 15:11:34 +0200] rev 34574
strip: factor out update target selection The same algorithm was used in two places: one to find out which commit shall become the parent of wdir, and the other to prepare the wdir when keeping changes. Factoring it out prevents inconsistent changes in either occurrence.
Wed, 11 Oct 2017 03:48:11 -0700 contrib: add check-code rule banning use of readlink
Augie Fackler <augie@google.com> [Wed, 11 Oct 2017 03:48:11 -0700] rev 34573
contrib: add check-code rule banning use of readlink readlink doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D1000
Tue, 10 Oct 2017 11:03:14 -0400 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:03:14 -0400] rev 34572
tests: use readlink.py instead of readlink The latter doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D999
Tue, 10 Oct 2017 11:02:53 -0400 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:53 -0400] rev 34571
tests: use readlink.py instead of readlink The latter doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D998
Tue, 10 Oct 2017 11:02:40 -0400 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:40 -0400] rev 34570
tests: use readlink.py instead of readlink The latter doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D997
Tue, 10 Oct 2017 11:02:23 -0400 tests: use readlink.py instead of readlink
Augie Fackler <augie@google.com> [Tue, 10 Oct 2017 11:02:23 -0400] rev 34569
tests: use readlink.py instead of readlink The latter doesn't always exist, such as on Solaris-derived platforms. Differential Revision: https://phab.mercurial-scm.org/D996
Wed, 11 Oct 2017 01:56:49 -0700 ui: recommend tweakdefaults in the default hgrc template
Augie Fackler <augie@google.com> [Wed, 11 Oct 2017 01:56:49 -0700] rev 34568
ui: recommend tweakdefaults in the default hgrc template Were I only slightly bolder, I'd make it on by default in the suggested user hgrc. Differential Revision: https://phab.mercurial-scm.org/D1001
Tue, 10 Oct 2017 01:03:24 +0530 tests: optimize test-copytrace-heuristics.t
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 10 Oct 2017 01:03:24 +0530] rev 34567
tests: optimize test-copytrace-heuristics.t test-copytrace-heuristics.t tests the heuristics algorithm of copytracing. The test has a pattern of making a server repo first and then cloning into a local repo for each test to have public and draft commits. This is done because if we have all draft commits and we have very less commits, heuristics will fallback to full copytracing as that will be fast. To avoid creating the server repo, we set the commit limit to -1 so that everytime we perform the heuristics algorithm even when having full drafts and tweak the config setting when we need to test the ability to fallback to full copytracing. This optimizes this test by 3 seconds. Before: real 0m41.503s user 0m36.068s sys 0m3.900s After: real 0m38.826s user 0m33.884s sys 0m3.396s Differential Revision: https://phab.mercurial-scm.org/D991
Thu, 05 Oct 2017 13:38:48 -0700 patch: do not cache translated messages (API)
Jun Wu <quark@fb.com> [Thu, 05 Oct 2017 13:38:48 -0700] rev 34566
patch: do not cache translated messages (API) Previously the code caches `i18n._` results in module variables. That causes issues after an encoding change. Instead of invalidating them manually, we now just recalculate the translated messages every time `filterpatch` gets called. This makes test-commit-interactive.t pass regardless of whether chg or demandimport is used or not. .. api: `patch.messages` now lives in `patch.getmessages()`. Extensions adding new messages should now wrap the `patch.getmessages` method instead of changing `patch.messages` directly. Differential Revision: https://phab.mercurial-scm.org/D959
Mon, 09 Oct 2017 10:09:36 -0700 fsmonitor: add new watchman notifications to fsmonitor extension
Eamonn Kent <ekent@fb.com> [Mon, 09 Oct 2017 10:09:36 -0700] rev 34565
fsmonitor: add new watchman notifications to fsmonitor extension The fsmonitor extension currently sends state-enter and state-leave notifications to watchman on the update operation. This commit creates additional notifications for the following events : - transaction creation and commit/abort. A state-enter notification will be sent when a transaction is created. It will provide the working copy parent's hash. A state-leave notification will be sent when the transaction is committed or aborted. It will provide the working copy parent's hash. - calls to set-parent will cause state-enter and state-leave notifications to be sent. The state-enter notification will be sent prior to the set-parent operation and the working copy parent's hash will be provided at this time. The state-leave notification will be sent after the set-parent operation completes providing the working copy parents hash. Test Plan: tested on dev server to check that necessary notifications were sent/received Differential Revision: https://phab.mercurial-scm.org/D989
Mon, 09 Oct 2017 10:09:36 -0700 fsmonitor: change the distance calculation
Eamonn Kent <ekent@fb.com> [Mon, 09 Oct 2017 10:09:36 -0700] rev 34564
fsmonitor: change the distance calculation Change the distance calculation in the fsmonitor extension. It is done in a method since anticipated changes will need to use this logic as well. Test Plan: Tested on development server. Differential Revision: https://phab.mercurial-scm.org/D988
Mon, 09 Oct 2017 16:31:43 +0200 configitems: update default value of 'phases.new-commit'
Boris Feld <boris.feld@octobus.net> [Mon, 09 Oct 2017 16:31:43 +0200] rev 34563
configitems: update default value of 'phases.new-commit' Now that mq is cleaned up, we can rely on the config register for the default value. We switch the default from the integer to human readable value to help with future automatic documentation that could be generated from the config register.
Mon, 09 Oct 2017 17:33:03 +0200 mq: use the newcommitphase utility
Boris Feld <boris.feld@octobus.net> [Mon, 09 Oct 2017 17:33:03 +0200] rev 34562
mq: use the newcommitphase utility We use the official API instead of doing the operation manually. This will help storing the default value for phases properly in the next changeset.
Tue, 26 Sep 2017 18:17:47 +0200 patch: rename "header" variable into "hdr" in diff()
Denis Laxalde <denis.laxalde@logilab.fr> [Tue, 26 Sep 2017 18:17:47 +0200] rev 34561
patch: rename "header" variable into "hdr" in diff() The "header" variable was hiding the eponymous class, hence preventing its usage.
Thu, 05 Oct 2017 08:03:57 -0700 merge: improve comments in mergestate._makerecords
Mark Thomas <mbthomas@fb.com> [Thu, 05 Oct 2017 08:03:57 -0700] rev 34560
merge: improve comments in mergestate._makerecords Differential Revision: https://phab.mercurial-scm.org/D955
Mon, 02 Oct 2017 14:05:30 -0700 commands: tidy up merge state decoding in resolve
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34559
commands: tidy up merge state decoding in resolve Make the mapping from merge state to label and display key explicit, and move construction of the dict out of the loop. Differential Revision: https://phab.mercurial-scm.org/D861
Mon, 02 Oct 2017 14:05:30 -0700 tests: add test for path conflicts during merge
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34558
tests: add test for path conflicts during merge Differential Revision: https://phab.mercurial-scm.org/D787
Mon, 02 Oct 2017 14:05:30 -0700 tests: add test for path conflicts during update
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34557
tests: add test for path conflicts during update Differential Revision: https://phab.mercurial-scm.org/D786
Mon, 02 Oct 2017 14:05:30 -0700 context: also consider path conflicts when clearing unknown files
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34556
context: also consider path conflicts when clearing unknown files When clearing unknown files to remove path conflicts, also delete files that conflict with the target file's path. Differential Revision: https://phab.mercurial-scm.org/D785
Mon, 02 Oct 2017 14:05:30 -0700 merge: check for path conflicts when merging (issue5628)
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34555
merge: check for path conflicts when merging (issue5628) When merging, check for any path conflicts introduced by the manifest merge and rename the conflicting file to a safe name. Differential Revision: https://phab.mercurial-scm.org/D784
Mon, 02 Oct 2017 14:05:30 -0700 util: add safename function for generating safe names to rename to
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34554
util: add safename function for generating safe names to rename to This function finds a name which does not clash with any other name in the manifest, and so can be used to safely rename a file. Differential Revision: https://phab.mercurial-scm.org/D783
Mon, 02 Oct 2017 14:05:30 -0700 merge: improve error messages for path conflicts during update
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34553
merge: improve error messages for path conflicts during update Differential Revision: https://phab.mercurial-scm.org/D782
Mon, 02 Oct 2017 14:05:30 -0700 merge: check for path conflicts when updating (issue5628)
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34552
merge: check for path conflicts when updating (issue5628) When updating to a new revision, check for path conflicts caused by unknown files in the working directory, and handle these by backing up the file or directory and replacing it. Differential Revision: https://phab.mercurial-scm.org/D781
Mon, 02 Oct 2017 14:05:30 -0700 merge: rename conflicts to fileconflicts in _checkunknownfiles
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34551
merge: rename conflicts to fileconflicts in _checkunknownfiles We will need to distinguish between file conflicts and path conflicts. Rename the conflicts variable so that it will be clearly distinct from pathconflicts, which will be introduced in a future commit. Differential Revision: https://phab.mercurial-scm.org/D780
Mon, 02 Oct 2017 14:05:30 -0700 merge: add _checkunknowndirs function for detecting path conflicts
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34550
merge: add _checkunknowndirs function for detecting path conflicts Add a new function which, given a file name, finds the shortest path for which there is a conflicting file or directory in the working directory. Differential Revision: https://phab.mercurial-scm.org/D779
Mon, 02 Oct 2017 14:05:30 -0700 merge: backup conflicting directories when getting files
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34549
merge: backup conflicting directories when getting files During batchget, if a target file conflicts with a directory, or if the directory a target file is in conflicts with a file, backup and remove the conflicting file or directory before performing the get. Differential Revision: https://phab.mercurial-scm.org/D778
Mon, 02 Oct 2017 14:05:30 -0700 merge: add merge action 'pr' to rename files during update
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34548
merge: add merge action 'pr' to rename files during update Add a new merge action to handle a path conflict by renaming the conflicting file to a safe name. The rename is just to avoid problems on the filesystem. The conflict is still considered unresolved until the user marks the original path as resolved. Differential Revision: https://phab.mercurial-scm.org/D777
Mon, 02 Oct 2017 14:05:30 -0700 merge: add merge action 'p' to record path conflicts during update
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34547
merge: add merge action 'p' to record path conflicts during update Add a new merge action to record path conflicts. A status message is printed, and the path conflict is added to the merge state. Differential Revision: https://phab.mercurial-scm.org/D776
Mon, 02 Oct 2017 14:05:30 -0700 commands: update the resolve command to handle path conflicts
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34546
commands: update the resolve command to handle path conflicts The resolve command must support displaying path conflicts and marking them as resolved or unresolved. Differential Revision: https://phab.mercurial-scm.org/D775
Mon, 02 Oct 2017 14:05:30 -0700 merge: add pathconflict merge state
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34545
merge: add pathconflict merge state Path conflicts that occur during merges are represented by 'pu' (unresolved) and 'pr' (resolved) records in the merge state. These are stored on disk in 'P' records. Differential Revision: https://phab.mercurial-scm.org/D774
Mon, 02 Oct 2017 14:05:30 -0700 tests: add a test demonstrating basic path conflict failures
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34544
tests: add a test demonstrating basic path conflict failures Differential Revision: https://phab.mercurial-scm.org/D773
Mon, 02 Oct 2017 14:05:30 -0700 scmutil: handle conflicting files and dirs in origbackuppath
Mark Thomas <mbthomas@fb.com> [Mon, 02 Oct 2017 14:05:30 -0700] rev 34543
scmutil: handle conflicting files and dirs in origbackuppath When ui.origbackuppath is set, .orig files are stored outside of the working copy. However conflicts can occur when files or directories end up having the same name. These conflicts cause Mercurial to abort, even if they've been created as a result of different backups. Make sure we always replace files or directories in the origbackuppath if they conflict with another file or directory. Test Plan: Add new unit test for conflicting paths. Differential Revision: https://phab.mercurial-scm.org/D680
Sun, 01 Oct 2017 12:21:50 +0100 extdata: show debug message if external command exits with non-zero status
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Oct 2017 12:21:50 +0100] rev 34542
extdata: show debug message if external command exits with non-zero status This isn't fatal because it's quite common for grep to exit with 1. Thanks to Foozy for spotting this.
Sat, 30 Sep 2017 08:57:50 +0100 templatekw: allow accessing to nested namespace item by its template name
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:57:50 +0100] rev 34541
templatekw: allow accessing to nested namespace item by its template name Since we have the dot operator, it makes more sense to write {namespaces.tags % "{tag}"} instead of {namespaces.tags % "{name}"}
Sat, 30 Sep 2017 08:50:24 +0100 templatekw: get rid of temporary dicts from shownamespaces()
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Sep 2017 08:50:24 +0100] rev 34540
templatekw: get rid of temporary dicts from shownamespaces()
Mon, 18 Sep 2017 23:53:05 +0900 templatekw: rename peerpaths to peerurls per naming convention (BC)
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:53:05 +0900] rev 34539
templatekw: rename peerpaths to peerurls per naming convention (BC) Since each element is called as "url", the template keyword should be named as "<whatever>urls". {peerurls} is now stabilized.
Mon, 18 Sep 2017 23:31:01 +0900 templatekw: make experimental {peerpaths} return a single-level dict (BC)
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:31:01 +0900] rev 34538
templatekw: make experimental {peerpaths} return a single-level dict (BC) This was planned as in c0d8de2724ce, "{peerpaths.default.pushurl} will be translated to peerpaths['default'].makemap()['pushurl'], which means {peerpaths} should be a single-level dict and sub-options should be makemap()-ed."
Mon, 18 Sep 2017 23:49:05 +0900 templatekw: fix scope of peerpath url bound to generator
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:49:05 +0900] rev 34537
templatekw: fix scope of peerpath url bound to generator I had to explicitly bind 'd' to the generator. Otherwise, the last 'd' would be used.
Mon, 18 Sep 2017 23:07:17 +0900 templater: extend dot operator as a short for get(dict, key)
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Sep 2017 23:07:17 +0900] rev 34536
templater: extend dot operator as a short for get(dict, key)
Sat, 09 Sep 2017 19:32:56 +0900 templater: add dot operator to easily access a sub item
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Sep 2017 19:32:56 +0900] rev 34535
templater: add dot operator to easily access a sub item This and the next patch will allow us to access a deeply-nested item by foo.bar.baz syntax.
Sat, 09 Sep 2017 19:13:25 +0900 templater: wrap get/min/max result so map operation can apply to element
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Sep 2017 19:13:25 +0900] rev 34534
templater: wrap get/min/max result so map operation can apply to element See the test for usage example. wraphybridvalue() takes a key/value pair because a hybrid dict passes a key to its makemap() function. Since makemap() of showmanifest() doesn't need a key, it's set to None.
Mon, 02 Oct 2017 07:18:24 +0100 dispatch: move initialization of sys.std* files
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Oct 2017 07:18:24 +0100] rev 34533
dispatch: move initialization of sys.std* files I'll add another Python 3 hack.
Mon, 02 Oct 2017 06:52:10 +0100 py3: work around the scope of exception variable in dispatch.run()
Yuya Nishihara <yuya@tcha.org> [Mon, 02 Oct 2017 06:52:10 +0100] rev 34532
py3: work around the scope of exception variable in dispatch.run() https://stackoverflow.com/questions/29268892/
Sat, 07 Oct 2017 22:07:10 +0900 chg: just forward --time to command server
Yuya Nishihara <yuya@tcha.org> [Sat, 07 Oct 2017 22:07:10 +0900] rev 34531
chg: just forward --time to command server Since we've removed the use of atexit in de5c9d0e02ea, --time just works.
Mon, 09 Oct 2017 02:30:23 -0700 windows: add an experimental option for long paths support
Kostia Balytskyi <ikostia@fb.com> [Mon, 09 Oct 2017 02:30:23 -0700] rev 34530
windows: add an experimental option for long paths support This commit adds an experimental --long-paths-support flag to build_hgexe on Windows. It is off by default, but when supplied, causes setup.py to embed some XML into the generated hg.exe, which in turn tells Windows to allow this exe to use long paths (given that the appropriate registry setting is enabled as well). This was tested on Windows 10 14393 and 15063. This commit introduces a badly-named initialize_options function, but its name is dictated by distutils, rather than chosen. # no-check-commit
Sun, 08 Oct 2017 22:07:47 +0200 configitems: register the 'experimental.graphstyle.grandparent' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:07:47 +0200] rev 34529
configitems: register the 'experimental.graphstyle.grandparent' config
Sun, 08 Oct 2017 22:07:21 +0200 configitems: register the 'experimental.graphstyle.missing' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:07:21 +0200] rev 34528
configitems: register the 'experimental.graphstyle.missing' config
Sun, 08 Oct 2017 22:06:35 +0200 configitems: register the 'experimental.graphstyle.parent' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 22:06:35 +0200] rev 34527
configitems: register the 'experimental.graphstyle.parent' config
Sun, 08 Oct 2017 21:41:37 +0200 configitems: register the 'devel.empty-changegroup' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:37 +0200] rev 34526
configitems: register the 'devel.empty-changegroup' config
Sun, 08 Oct 2017 21:41:22 +0200 configitems: register the 'devel.cache-vfs' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:22 +0200] rev 34525
configitems: register the 'devel.cache-vfs' config
Sun, 08 Oct 2017 21:36:26 +0200 configitems: register the 'devel.warn-config-default' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:36:26 +0200] rev 34524
configitems: register the 'devel.warn-config-default' config
Sun, 08 Oct 2017 21:41:10 +0200 configitems: register the 'devel.warn-config' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:41:10 +0200] rev 34523
configitems: register the 'devel.warn-config' config
Sun, 08 Oct 2017 21:48:40 +0200 configitems: register 'merge.checkunknown' and 'merge.checkignored'
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:48:40 +0200] rev 34522
configitems: register 'merge.checkunknown' and 'merge.checkignored' They both use the same function defining a default, so we need to update them at the same time.
Sun, 08 Oct 2017 21:47:14 +0200 configitems: register the 'diff.*' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:47:14 +0200] rev 34521
configitems: register the 'diff.*' config All the config were already using a unified function with a forced default, so, registering them all at once seems safe.
Sun, 08 Oct 2017 20:43:46 +0200 configitems: register the 'experimental.mmapindexthreshold' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:43:46 +0200] rev 34520
configitems: register the 'experimental.mmapindexthreshold' config
Sun, 08 Oct 2017 20:42:19 +0200 configitems: register the 'experimental.maxdeltachainspan' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:42:19 +0200] rev 34519
configitems: register the 'experimental.maxdeltachainspan' config
Sun, 08 Oct 2017 20:16:09 +0200 configitems: register the 'commands.show.aliasprefix' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:16:09 +0200] rev 34518
configitems: register the 'commands.show.aliasprefix' config
Sun, 08 Oct 2017 20:11:34 +0200 configitems: register the 'blackbox.track' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 20:11:34 +0200] rev 34517
configitems: register the 'blackbox.track' config
Sun, 08 Oct 2017 04:39:42 +0530 copies: add docs for config `experimental.copytrace.sourcecommitlimit`
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 08 Oct 2017 04:39:42 +0530] rev 34516
copies: add docs for config `experimental.copytrace.sourcecommitlimit` This patch adds documentation for the config option. The config name does not convey much and hence documentation was required. Differential Revision: https://phab.mercurial-scm.org/D986
Thu, 05 Oct 2017 14:29:13 -0400 hgweb: extract function for loading style from request context
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:29:13 -0400] rev 34515
hgweb: extract function for loading style from request context Also make it work on Python 3. Differential Revision: https://phab.mercurial-scm.org/D970
Thu, 05 Oct 2017 14:27:21 -0400 request: coerce content-type to native str
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:27:21 -0400] rev 34514
request: coerce content-type to native str Again, required by WSGI. Differential Revision: https://phab.mercurial-scm.org/D969
Thu, 05 Oct 2017 14:26:09 -0400 request: use trivial iterator over dictionary keys
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:26:09 -0400] rev 34513
request: use trivial iterator over dictionary keys Differential Revision: https://phab.mercurial-scm.org/D968
Thu, 05 Oct 2017 14:22:02 -0400 hgweb: when constructing or adding to a wsgi environ dict, use native strs
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:22:02 -0400] rev 34512
hgweb: when constructing or adding to a wsgi environ dict, use native strs That's what's required of us to work with the WSGI API on Python 3. Differential Revision: https://phab.mercurial-scm.org/D967
Thu, 05 Oct 2017 14:17:50 -0400 hgweb: produce native string for etag value
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:17:50 -0400] rev 34511
hgweb: produce native string for etag value Also use %d since we know mtime is numeric. Differential Revision: https://phab.mercurial-scm.org/D966
Thu, 05 Oct 2017 14:13:20 -0400 hgweb: in protocol adapter, look for bytes instances, not str
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:13:20 -0400] rev 34510
hgweb: in protocol adapter, look for bytes instances, not str Differential Revision: https://phab.mercurial-scm.org/D963
Thu, 05 Oct 2017 14:12:51 -0400 hgweb: in protocol adapter, avoid control reaching end of non-void function
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:12:51 -0400] rev 34509
hgweb: in protocol adapter, avoid control reaching end of non-void function This greatly confounded some Python 3 porting work, once it was managing to get this far. Differential Revision: https://phab.mercurial-scm.org/D962
Thu, 05 Oct 2017 14:18:55 -0700 test-check-code: fail new commits which use 'atexit' instead of 'ui.atexit'
Saurabh Singh <singhsrb@fb.com> [Thu, 05 Oct 2017 14:18:55 -0700] rev 34508
test-check-code: fail new commits which use 'atexit' instead of 'ui.atexit' Callbacks registered with 'atexit' are sometimes not called (like when hg aborts and calls os._exit). On the other hand, callbacks registered with 'ui.atexit' are called in most cases. Therefore, encouraging the use of 'ui.atexit' by failing the test 'test-check-code.t' appropriately. Test Plan: Ran the test 'test-check-code.t' after importing 'atexit' in one of the py files and confirmed that the test fails. Differential Revision: https://phab.mercurial-scm.org/D961
Thu, 05 Oct 2017 20:46:49 +0000 test-push-race: use 'ui.atexit' instead of python's 'atexit'
Saurabh Singh <singhsrb@fb.com> [Thu, 05 Oct 2017 20:46:49 +0000] rev 34507
test-push-race: use 'ui.atexit' instead of python's 'atexit' Callbacks registered with 'atexit' are sometimes not called (like when a process is killed by the SIGTERM signal). Therefore, this commit replaces it with 'ui.atexit' which ensures that the callbacks are always called. This also makes the test compatible with chg. Test Plan: Ran the test 'test-push-race.t' with and without the '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D957
Mon, 02 Oct 2017 04:48:06 +0530 py3: use '%d' for integers instead of '%s'
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 02 Oct 2017 04:48:06 +0530] rev 34506
py3: use '%d' for integers instead of '%s' Differential Revision: https://phab.mercurial-scm.org/D973
Mon, 02 Oct 2017 04:46:17 +0530 py3: fix keyword arguments handling in mq
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 02 Oct 2017 04:46:17 +0530] rev 34505
py3: fix keyword arguments handling in mq This patch fixes the handling of keyword arguments to functions on Python 3. On python3, the keys of keyword arguments need to str which is unicode. So any keyword argument will get will have str keys and any dictionary we pass as kwargs must have all the keys as str. This patch uses pycompat.(strkwargs|byteskwargs) to do so conversion between bytes keys and str keys and use r'' if there are very less uses and conversion can be prevented. Differential Revision: https://phab.mercurial-scm.org/D972
Thu, 05 Oct 2017 20:41:50 -0700 test-rebase-base: clarify it is about the "--base" flag
Jun Wu <quark@fb.com> [Thu, 05 Oct 2017 20:41:50 -0700] rev 34504
test-rebase-base: clarify it is about the "--base" flag It happened several times that people use `test-rebase-base.t` as a general purposed test file for rebase. But it is intended to be only related to the `--base` flag. This patch split, renamed the test, and added a note to clarify. Differential Revision: https://phab.mercurial-scm.org/D975
Fri, 30 Jun 2017 03:36:10 +0200 configitems: register the 'convert.p4.encoding' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:36:10 +0200] rev 34503
configitems: register the 'convert.p4.encoding' config
Fri, 30 Jun 2017 03:42:34 +0200 configitems: register the 'gpg.key' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:34 +0200] rev 34502
configitems: register the 'gpg.key' config
Fri, 30 Jun 2017 03:42:33 +0200 configitems: register the 'gpg.cmd' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:33 +0200] rev 34501
configitems: register the 'gpg.cmd' config
Fri, 30 Jun 2017 03:42:50 +0200 configitems: register the 'keywordset.svn' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:50 +0200] rev 34500
configitems: register the 'keywordset.svn' config
Fri, 30 Jun 2017 03:42:35 +0200 configitems: register the 'hgk.path' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:35 +0200] rev 34499
configitems: register the 'hgk.path' config
Fri, 30 Jun 2017 03:44:18 +0200 configitems: register the 'share.poolnaming' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:18 +0200] rev 34498
configitems: register the 'share.poolnaming' config
Fri, 30 Jun 2017 03:44:17 +0200 configitems: register the 'share.pool' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:17 +0200] rev 34497
configitems: register the 'share.pool' config
Fri, 30 Jun 2017 03:44:19 +0200 configitems: register the 'shelve.maxbackups' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:19 +0200] rev 34496
configitems: register the 'shelve.maxbackups' config
Fri, 30 Jun 2017 03:43:33 +0200 configitems: register the 'pager.attend' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:33 +0200] rev 34495
configitems: register the 'pager.attend' config
Fri, 30 Jun 2017 03:43:46 +0200 configitems: register the 'perf.stub' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:46 +0200] rev 34494
configitems: register the 'perf.stub' config
Fri, 30 Jun 2017 03:32:25 +0200 configitems: register the 'commands.rebase.requiredest' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:32:25 +0200] rev 34493
configitems: register the 'commands.rebase.requiredest' config
Fri, 30 Jun 2017 03:42:06 +0200 configitems: register the 'experimental.rebaseskipobsolete' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:06 +0200] rev 34492
configitems: register the 'experimental.rebaseskipobsolete' config
Fri, 30 Jun 2017 03:41:49 +0200 configitems: register the 'experimental.nonnormalparanoidcheck' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:41:49 +0200] rev 34491
configitems: register the 'experimental.nonnormalparanoidcheck' config
Fri, 30 Jun 2017 03:39:44 +0200 configitems: register the 'experimental.allowdivergence' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:39:44 +0200] rev 34490
configitems: register the 'experimental.allowdivergence' config
Thu, 05 Oct 2017 21:56:25 +0000 histedit: removing the experimental config 'histeditng'
Saurabh Singh <singhsrb@fb.com> [Thu, 05 Oct 2017 21:56:25 +0000] rev 34489
histedit: removing the experimental config 'histeditng' This config has been around for about 2 years now. So, it can be assumed to be stable. Therefore, I am removing the config. This also makes the test 'test-histedit-base.t' compatible with chg. Test Plan: - Ran the test 'test-histedit-base.t' with and without '--chg' option. - Ran all the other tests without '--chg' option. - Checked the output of 'hg help histedit'. Differential Revision: https://phab.mercurial-scm.org/D942
Thu, 05 Oct 2017 00:48:44 +0000 convert: fix the RevisionSpec import in the bzr module
Saurabh Singh <singhsrb@fb.com> [Thu, 05 Oct 2017 00:48:44 +0000] rev 34488
convert: fix the RevisionSpec import in the bzr module This import was failing (because its invalid) which was resulting in the following tests failing with chg running: - test-convert-bzr.t - test-convert-bzr-directories.t - test-convert-bzr-ghosts.t - test-convert-bzr-treeroot.t - test-convert-bzr-114.t - test-convert-bzr-merges.t This commit fixes the import which in turn fixes the tests. Test Plan: Ran the aforementioned tests with and without '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D936
Thu, 05 Oct 2017 15:12:11 -0400 test-annotate: fix up expected output for pure
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 15:12:11 -0400] rev 34487
test-annotate: fix up expected output for pure This is just a side effect of surfacing the "revisions were skipped" state in the blame output. Differential Revision: https://phab.mercurial-scm.org/D956
Fri, 29 Sep 2017 15:48:34 +0000 style: never use a space before a colon or comma
Alex Gaynor <agaynor@mozilla.com> [Fri, 29 Sep 2017 15:48:34 +0000] rev 34486
style: never use a space before a colon or comma Differential Revision: https://phab.mercurial-scm.org/D954
Mon, 02 Oct 2017 19:25:11 -0700 eol: make [eol] config section sensitive for chg confighash
Jun Wu <quark@fb.com> [Mon, 02 Oct 2017 19:25:11 -0700] rev 34485
eol: make [eol] config section sensitive for chg confighash The eol extension may mangle the [eol] config section and that means chg is unable to detect config file change (because it re-applies setconfig changes). This makes test-eol.t pass with chg. Differential Revision: https://phab.mercurial-scm.org/D917
Mon, 02 Oct 2017 16:48:58 -0700 test-alias: make it compatible with chg
Jun Wu <quark@fb.com> [Mon, 02 Oct 2017 16:48:58 -0700] rev 34484
test-alias: make it compatible with chg ad1bdea (dispatch: defer environment variable resolution in alias commands (BC), 2016-05-06) made environment variables lazily resolved. But after D805 (alias: make alias command lazily resolved 2017-09-23), alias resolution happened after uisetup, which breaks the test for chg. `uisetup` is known to behave different in chg. Let's verify the feature without using `*setup`. Differential Revision: https://phab.mercurial-scm.org/D912
Wed, 04 Oct 2017 18:39:26 -0700 serve: make tests compatible with chg
Saurabh Singh <singhsrb@fb.com> [Wed, 04 Oct 2017 18:39:26 -0700] rev 34483
serve: make tests compatible with chg chg only supports 'hg serve' when the options to the serve command follow the 'hg serve'. For example, 'hg -R <repo> serve ..' is unsupported. This leads to issues with chg running for the following tests: - test-bundle2-exchange.t - test-clone-uncompressed.t - test-hgweb-csp.t - test-http-bad-server.t - test-http-bundle1.t - test-http-protocol.t - test-http.t There was an effort made earlier to fix this issue for chg and the tests were fixed to confirm to the compatible pattern. But the new tests did not take care of the same and hence, fail. Hopefully, there will be continuous build setup for chg after all tests are made compatible with chg so that we can avoid such issues. Test Plan: Ran the aforementioned tests with and without '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D946
Sun, 01 Oct 2017 12:10:48 -0400 ui: convert to/from Optional[bytes] to Optional[str] in password manager
Augie Fackler <augie@google.com> [Sun, 01 Oct 2017 12:10:48 -0400] rev 34482
ui: convert to/from Optional[bytes] to Optional[str] in password manager This password manager proxy is roughly the right-looking layer to convert between strings and bytes. Many of these arguments can be None, so we have a helper method to make the conversion preserve Nones without exploding. Differential Revision: https://phab.mercurial-scm.org/D886
Fri, 30 Jun 2017 03:37:05 +0200 configitems: register the 'debug.dirstate.delaywrite' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:37:05 +0200] rev 34481
configitems: register the 'debug.dirstate.delaywrite' config
Fri, 30 Jun 2017 03:43:13 +0200 configitems: register the 'merge.preferancestor' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:13 +0200] rev 34480
configitems: register the 'merge.preferancestor' config
Fri, 30 Jun 2017 03:39:10 +0200 configitems: register the 'email.from' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:39:10 +0200] rev 34479
configitems: register the 'email.from' config
Fri, 30 Jun 2017 03:44:24 +0200 configitems: register the 'smtp.port' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:24 +0200] rev 34478
configitems: register the 'smtp.port' config
Fri, 30 Jun 2017 03:43:48 +0200 configitems: register the 'phases.new-commit' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:43:48 +0200] rev 34477
configitems: register the 'phases.new-commit' config
Fri, 30 Jun 2017 03:41:23 +0200 configitems: register the 'experimental.histeditng' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:41:23 +0200] rev 34476
configitems: register the 'experimental.histeditng' config
Fri, 30 Jun 2017 03:41:19 +0200 configitems: register the 'experimental.histedit.autoverb' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:41:19 +0200] rev 34475
configitems: register the 'experimental.histedit.autoverb' config
Fri, 30 Jun 2017 03:42:40 +0200 configitems: register the 'histedit.singletransaction' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:40 +0200] rev 34474
configitems: register the 'histedit.singletransaction' config
Fri, 30 Jun 2017 03:42:39 +0200 configitems: register the 'histedit.linelen' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:39 +0200] rev 34473
configitems: register the 'histedit.linelen' config
Fri, 30 Jun 2017 03:42:38 +0200 configitems: register the 'histedit.dropmissing' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:38 +0200] rev 34472
configitems: register the 'histedit.dropmissing' config
Fri, 30 Jun 2017 03:42:37 +0200 configitems: register the 'histedit.defaultrev' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:42:37 +0200] rev 34471
configitems: register the 'histedit.defaultrev' config
Fri, 30 Jun 2017 03:44:30 +0200 configitems: register the 'transplant.log' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:30 +0200] rev 34470
configitems: register the 'transplant.log' config
Fri, 30 Jun 2017 03:44:29 +0200 configitems: register the 'transplant.filter' config
Boris Feld <boris.feld@octobus.net> [Fri, 30 Jun 2017 03:44:29 +0200] rev 34469
configitems: register the 'transplant.filter' config
Wed, 04 Oct 2017 11:58:00 -0400 urllibcompat: move some adapters from pycompat to urllibcompat
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 11:58:00 -0400] rev 34468
urllibcompat: move some adapters from pycompat to urllibcompat These are all the httpserver and urllib.* aliases. They seem to make more sense in the slightly-more-specific urllibcompat package than the general-purpose pycompat. Differential Revision: https://phab.mercurial-scm.org/D935
Sun, 01 Oct 2017 12:14:21 -0400 cleanup: use urllibcompat for renamed methods on urllib request objects
Augie Fackler <augie@google.com> [Sun, 01 Oct 2017 12:14:21 -0400] rev 34467
cleanup: use urllibcompat for renamed methods on urllib request objects Differential Revision: https://phab.mercurial-scm.org/D891
Sun, 01 Oct 2017 10:45:03 -0400 urllibcompat: new library to help abstract out some python3 urllib2 stuff
Augie Fackler <augie@google.com> [Sun, 01 Oct 2017 10:45:03 -0400] rev 34466
urllibcompat: new library to help abstract out some python3 urllib2 stuff Doing a new file instead of pycompat because I'm starting to feel like pycompat is getting a little enormous in terms of scope. Differential Revision: https://phab.mercurial-scm.org/D890
(0) -30000 -10000 -3000 -1000 -240 +240 +1000 +3000 +10000 tip