Sat, 14 Oct 2017 17:05:41 +0200 revlog-sparse-read: add a lower-threshold for read block size
Paul Morelle <paul.morelle@octobus.net> [Sat, 14 Oct 2017 17:05:41 +0200] rev 34825
revlog-sparse-read: add a lower-threshold for read block size The option experimental.sparse-read.min-block-size specifies the minimal size of a deltachain span, under which it won't be split by _slicechunk.
Tue, 10 Oct 2017 17:50:27 +0200 revlog: introduce an experimental flag to slice chunks reads when too sparse
Paul Morelle <paul.morelle@octobus.net> [Tue, 10 Oct 2017 17:50:27 +0200] rev 34824
revlog: introduce an experimental flag to slice chunks reads when too sparse Delta chains can become quite sparse if there is a lot of unrelated data between relevant pieces. Right now, revlog always reads all the necessary data for the delta chain in one single read. This can lead to a lot of unrelated data to be read (see issue5482 for more details). One can use the `experimental.maxdeltachainspan` option with a large value (or -1) to easily produce a very sparse delta chain. This change introduces the ability to slice the chunks retrieval into multiple reads, skipping large sections of unrelated data. Preliminary testing shows interesting results. For example the peak memory consumption to read a manifest on a large repository is reduced from 600MB to 250MB (200MB without maxdeltachainspan). However, the slicing itself and the multiple reads can have an negative impact on performance. This is why the new feature is hidden behind an experimental flag. Future changesets will add various parameters to control the slicing heuristics. We hope to experiment a wide variety of repositories during 4.4 and hopefully turn the feature on by default in 4.5. As a first try, the algorithm itself is prone to deep changes. However, we wish to define APIs and have a baseline to work on.
Mon, 09 Oct 2017 15:13:41 +0200 revlog: ignore empty trailing chunks when reading segments
Paul Morelle <paul.morelle@octobus.net> [Mon, 09 Oct 2017 15:13:41 +0200] rev 34823
revlog: ignore empty trailing chunks when reading segments When a merge commit creates an empty diff in the revlog, its offset may still be quite far from the end of the previous chunk. Skipping these empty chunks may reduce read size significantly. In most cases, there is no gain, and in some cases, little gain. On my clone of pypy, `hg manifest` reads 65% less bytes (96140 i/o 275943) for revision 4260 by ignoring the only empty trailing diff. For revision 2229, 35% (34557 i/o 53435) Sadly, this is difficult to reproduce, as hg clone can make its own different structure every time.
Wed, 20 Sep 2017 19:17:37 +0200 phase: isolate logic to update remote phrase through bundle2 pushkey
Boris Feld <boris.feld@octobus.net> [Wed, 20 Sep 2017 19:17:37 +0200] rev 34822
phase: isolate logic to update remote phrase through bundle2 pushkey Move the logic to build bundle2 pushkey part into its dedicated function. It will help to keep the logic clear when adding support for sending phases change using 'phase-heads' part.
Wed, 11 Oct 2017 07:40:00 +0200 phase: generate a push-race detection part on push
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 07:40:00 +0200] rev 34821
phase: generate a push-race detection part on push We are about to switch phase pushing from using pushkey to using a the new dedicated binary part. We introduce the push race detection on its own to help detect potential impact.
Wed, 11 Oct 2017 07:13:02 +0200 phase: introduce a new 'check:phases' part
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 07:13:02 +0200] rev 34820
phase: introduce a new 'check:phases' part This part checks if revisions are still in the same phase as when the bundle was generated. This is similar to what 'check:heads' or 'check:updated-heads' bundle2 part achieves for changesets. We needs seems before we can move away from pushkey usage from phase since pushkey has it own built-in push-race detection.
Wed, 11 Oct 2017 18:39:04 +0200 phase: gather remote phase information in a summary object
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 18:39:04 +0200] rev 34819
phase: gather remote phase information in a summary object We keep useful phase information around. The data will be reused with detecting push-race in later changesets.
Wed, 11 Oct 2017 18:39:34 +0200 phase: simplify the check for issue3781 shortcut in discovery
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 18:39:34 +0200] rev 34818
phase: simplify the check for issue3781 shortcut in discovery We'll rework the code around this check. Limiting the entanglement will help with later changesets
Mon, 16 Oct 2017 12:36:42 +0200 exchange: fix issue3781 reference in the comment
Boris Feld <boris.feld@octobus.net> [Mon, 16 Oct 2017 12:36:42 +0200] rev 34817
exchange: fix issue3781 reference in the comment This comment is about: issue3781: Courtesy Phases synchronisation to publishing server prevent subrepo push Not about: issue3871: Slow hg log when template contains {file_adds}, {file_mods} and {file_dels}
Wed, 11 Oct 2017 20:08:02 +0200 phase: filter out non-draft item in "draft root"
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 20:08:02 +0200] rev 34816
phase: filter out non-draft item in "draft root" The on-disk file can contain draft root that are descendants of secret root. The resulting phase computation is correct, but the phases root content is not. I will send another series to introduce code that remove some of the cases where this can happens, but we first need to damage control the existing case. After this changeset, we can no longer advertise secret changeset as draft root.
Sun, 15 Oct 2017 22:48:02 -0400 subrepo: share instead of clone if the parent repo is shared (issue5675) (BC)
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Oct 2017 22:48:02 -0400] rev 34815
subrepo: share instead of clone if the parent repo is shared (issue5675) (BC) Previously, only the top level repo was shared, and then any subrepos were cloned on demand. This is problematic because commits to the parent repo would write an updated .hgsubstate to the share source, but the corresponding subrepo commit would be stuck in the local subrepo. That would prevent an update in the source repo. We already go to great lengths to avoid having inconsistent repos (e.g., `hg push -r rev` will push _everything_ in a subrepo, even if it isn't referenced in one of the parent's outgoing commits). Therefore, this seems like a bug fix, and there's no option to get the old behavior. I can't imagine the previous behavior was useful to anybody. There shouldn't be an issue with svn, since it is centralized. Maybe --git-dir can be used for git subrepos, but I'll leave that to someone more familiar with git. An integer was previously being implicitly returned from commands.share(), which caused dispatch() to start crashing when changing over to returning the shared repo. All error paths appear to raise, so this can be hardcoded to success. The clone command checks for 'is None' in a similar pattern, but since hg.clone() always returns a tuple, that seems wrong? .. fix:: Issue 5675 Creating a share of a repository with a Mercurial subrepository will now share the subrepository. and .. bc:: Mercurial subrepositories are now shared instead of cloned when the parent repository is shared. This prevents dangling subrepository references in the share source. Previously shared repositories with cloned subrepositories will continue to function unchanged.
Sun, 15 Oct 2017 16:57:34 -0400 tests: update output for no-symlink platforms
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Oct 2017 16:57:34 -0400] rev 34814
tests: update output for no-symlink platforms This goes with eb586ed5d8ce.
Mon, 16 Oct 2017 22:46:37 +0530 releasenotes: show a warning if fuzzywuzzy is not present
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 Oct 2017 22:46:37 +0530] rev 34813
releasenotes: show a warning if fuzzywuzzy is not present Differential Revision: https://phab.mercurial-scm.org/D1121
Mon, 16 Oct 2017 22:46:11 +0530 releasenotes: move import of fuzzywuzzy to import level
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 Oct 2017 22:46:11 +0530] rev 34812
releasenotes: move import of fuzzywuzzy to import level This will help us in determining easily that whether fuzzywuzzy is loaded or not loaded in any of the function. Differential Revision: https://phab.mercurial-scm.org/D1120
Sun, 15 Oct 2017 20:31:44 +0530 releasenotes: don't abort is there is a bad formatted entry for releasenotes
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 20:31:44 +0530] rev 34811
releasenotes: don't abort is there is a bad formatted entry for releasenotes While producing releasenotes for (4.3::), releasenotes aborts with error because of some bad formatting of releasenotes in some commits. Instead of aborting, this adds warning message which will help us in skipping them and telling user about it. Differential Revision: https://phab.mercurial-scm.org/D1097
Sun, 15 Oct 2017 20:29:16 +0530 releasenotes: make the import of fuzzywuzzy optional
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 20:29:16 +0530] rev 34810
releasenotes: make the import of fuzzywuzzy optional If fuzzywuzzy is note present, we will not be having the capability to merge existing releasenotes with the new releasenotes on the similarity basis. The merging will still work good for exact same releasenotes entries. Differential Revision: https://phab.mercurial-scm.org/D1096
Mon, 16 Oct 2017 22:51:58 -0400 webcommands: replace str(ctx) etc with pycompat.bytestr(ctx) etc
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 22:51:58 -0400] rev 34809
webcommands: replace str(ctx) etc with pycompat.bytestr(ctx) etc hgweb can now serve the graph view in Python 3. Differential Revision: https://phab.mercurial-scm.org/D1138
Mon, 16 Oct 2017 22:50:39 -0400 templater: don't blow up when trying to build an abort message
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 22:50:39 -0400] rev 34808
templater: don't blow up when trying to build an abort message __name__ is unicode, but we need bytes. For now, we'll make the (mostly-safe) assumption that template filter names will be ascii. Differential Revision: https://phab.mercurial-scm.org/D1137
Mon, 16 Oct 2017 22:44:06 -0400 webutil: use pycompat.bytestr() instead of str()
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 22:44:06 -0400] rev 34807
webutil: use pycompat.bytestr() instead of str() Stops us from choking the templater on Python 3. With this patch applied, much of hgweb works correctly in Python 3. The notable exception is the graph page, which chokes because it gets node IDs as str instead of bytes. Differential Revision: https://phab.mercurial-scm.org/D1135
Mon, 16 Oct 2017 22:43:19 -0400 hgweb: correct an earlier error of mine - `start` should be bytes
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 22:43:19 -0400] rev 34806
hgweb: correct an earlier error of mine - `start` should be bytes Gets hgweb very close to working with Python 3. Differential Revision: https://phab.mercurial-scm.org/D1134
Mon, 16 Oct 2017 18:58:16 +0200 config: simplify aliasing commands.update.check
Boris Feld <boris.feld@octobus.net> [Mon, 16 Oct 2017 18:58:16 +0200] rev 34805
config: simplify aliasing commands.update.check experimental.updatecheck was renamed into commands.update.check, use the config system to provides the fallback on the old config name instead of adding more code. Differential Revision: https://phab.mercurial-scm.org/D1117
Wed, 04 Oct 2017 18:51:21 -0700 run-tests: set HGPLAIN=1 when bisecting
Jun Wu <quark@fb.com> [Wed, 04 Oct 2017 18:51:21 -0700] rev 34804
run-tests: set HGPLAIN=1 when bisecting Otherwise a customized template may break the regex matching the bisect output. Differential Revision: https://phab.mercurial-scm.org/D949
Wed, 04 Oct 2017 18:50:18 -0700 run-tests: extract Popen logic to a single method
Jun Wu <quark@fb.com> [Wed, 04 Oct 2017 18:50:18 -0700] rev 34803
run-tests: extract Popen logic to a single method This removes 3 lines in total LOC and makes the upcoming changes easier. Differential Revision: https://phab.mercurial-scm.org/D948
Wed, 04 Oct 2017 18:42:24 -0700 run-tests: move bisect logic to a separate method
Jun Wu <quark@fb.com> [Wed, 04 Oct 2017 18:42:24 -0700] rev 34802
run-tests: move bisect logic to a separate method This removes 8 space indentation and makes upcoming changes easier. Differential Revision: https://phab.mercurial-scm.org/D947
Wed, 04 Oct 2017 11:00:04 -0400 mpatch: switch alignment of wrapped line from tab to spaces with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 11:00:04 -0400] rev 34801
mpatch: switch alignment of wrapped line from tab to spaces with clang-format I may be a weird person for liking this style, but our C style is historically nominally the Linux Kernel style, and when you configure clang-format to be kernel-ish, this is what you get. If we want to change it, we can do so by tweaking the formatter rules in the future. Differential Revision: https://phab.mercurial-scm.org/D1132
Wed, 04 Oct 2017 10:56:33 -0400 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com> [Wed, 04 Oct 2017 10:56:33 -0400] rev 34800
mpatch: reformat function prototypes with clang-format Differential Revision: https://phab.mercurial-scm.org/D1131
Mon, 16 Oct 2017 11:43:41 -0400 contrib: remove check-code rule about indentation
Augie Fackler <augie@google.com> [Mon, 16 Oct 2017 11:43:41 -0400] rev 34799
contrib: remove check-code rule about indentation We're moving towards a clang-format world, and clang-format is able to wrap argument lists with spaces reliably, while still enforcing tabs globally. Let's let clang-format do its job, and not do as much C-style enforcement with regular expressions. Differential Revision: https://phab.mercurial-scm.org/D1130
Sat, 24 Jan 2015 17:04:25 -0500 clang-format: configuration for the clang-format source formatter
Augie Fackler <raf@durin42.com> [Sat, 24 Jan 2015 17:04:25 -0500] rev 34798
clang-format: configuration for the clang-format source formatter Differential Revision: https://phab.mercurial-scm.org/D1129
Fri, 06 Oct 2017 06:48:43 -0700 merge: allow user to halt merge on merge-tool failures
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34797
merge: allow user to halt merge on merge-tool failures Depends on D932. Call the new _onfilemergefailure function when a merge tool reports failure via a return code. Differential Revision: https://phab.mercurial-scm.org/D951
Fri, 06 Oct 2017 06:48:43 -0700 filemerge: introduce functions to halt merge flow
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34796
filemerge: introduce functions to halt merge flow Depends on D931. This patch introduces functions and a config option that will allow a user to halt the merge if there are failures during a file merge. These functions will be used in the next patch. Differential Revision: https://phab.mercurial-scm.org/D932
Sun, 15 Oct 2017 19:29:56 +0530 amend: add a flag `-n/--note` to store note with amend
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 19:29:56 +0530] rev 34795
amend: add a flag `-n/--note` to store note with amend This patch utilises the functionality added in previous patches and adds a flag to amend command in hgext/amend to add a note to the amend. Since the note is stored in the obsmarker metadata, this will only be useful when obsmarker creation is enabled, otherwise this is no-op. Not adding releasenotes part as we yet don't have a functionality in core to show the note. Differential Revision: https://phab.mercurial-scm.org/D1095
Sun, 15 Oct 2017 15:32:03 +0530 cmdutil: pass metadata from amend() to cleanupnodes
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 15:32:03 +0530] rev 34794
cmdutil: pass metadata from amend() to cleanupnodes `commit --amend` and amend command in core and extensions rely on cmdutil.amend() for amending a commit. So the logic to add a note to amend must reside here. This patch assumes that note will be passed in opts dictionary to the function and it will be passed to cleanupnodes and then createmarkers to store the note in the obsmarker metadata. After this patch, note can be stored on an amend changeset by passing notes as a part of opts to cmdutil.amend(). Differential Revision: https://phab.mercurial-scm.org/D1094
Sun, 15 Oct 2017 14:34:24 +0530 scmutil: add capability to cleanupnodes to take obsmarker metadata
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 14:34:24 +0530] rev 34793
scmutil: add capability to cleanupnodes to take obsmarker metadata This patch adds a metadata argument to cleanupnodes() which will be dict and can be passed to obsmarker.createmarkers() and can be stored on the obsmarker. In cases when obsolescence is not enabled, the metadata argument is useless. This is a step towards storing a note in amend. Differential Revision: https://phab.mercurial-scm.org/D1093
Mon, 16 Oct 2017 13:06:33 -0700 test-hgweb-annotate-whitespace: make test compatible with chg
Saurabh Singh <singhsrb@fb.com> [Mon, 16 Oct 2017 13:06:33 -0700] rev 34792
test-hgweb-annotate-whitespace: make test compatible with chg D946 fixed a bunch of tests which had the same root cause. Please see that for details. This seems to be one of the newer tests which fails because of the same reason. Test Plan: Ran the test 'test-hgweb-annotate-whitespace.t' with and without the '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D1124
Mon, 16 Oct 2017 17:41:37 -0700 test-pager: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com> [Mon, 16 Oct 2017 17:41:37 -0700] rev 34791
test-pager: make the test compatible with chg D911 tried to make this test compatible with chg but instead resulted in the test being flaky for chg. For now, disabling this test for chg because it seems difficult to fix the test. This will allow for the continuous build setup for chg. Test Plan: Ran the test 'test-pager.t' with and without the '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D1128
Mon, 16 Oct 2017 17:06:32 -0700 test-obsolete-bounds-checking: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com> [Mon, 16 Oct 2017 17:06:32 -0700] rev 34790
test-obsolete-bounds-checking: make the test compatible with chg This test fails when run with chg because the error message starts with "ProgrammingError" instead of "mercurial.error.ProgrammingError". Therefore, globing the "mercurial.error." to ensure that the test is compatible with chg. Test Plan: Ran the test 'test-obsolete-bounds-checking.t' with and without the '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D1127
Mon, 16 Oct 2017 17:14:21 -0700 test-dispatch: make the test compatible with chg
Saurabh Singh <singhsrb@fb.com> [Mon, 16 Oct 2017 17:14:21 -0700] rev 34789
test-dispatch: make the test compatible with chg The test is broken when run with chg because it prints a different error message when chg is running. This commit fixes the test by special casing for chg. Test Plan: Ran the test 'test-dispatch.t' with and without '--chg' option. Differential Revision: https://phab.mercurial-scm.org/D1126
Mon, 16 Oct 2017 12:15:00 -0700 histedit: remove the nonexistant config 'histeditng'
Saurabh Singh <singhsrb@fb.com> [Mon, 16 Oct 2017 12:15:00 -0700] rev 34788
histedit: remove the nonexistant config 'histeditng' D942 removed the experimental config 'histeditng'. This is a leftover which should have been removed in that commit. Therefore, this commit completes the cleanup. Test Plan: Ran all the tests. Differential Revision: https://phab.mercurial-scm.org/D1123
Sun, 15 Oct 2017 20:36:29 -0700 context: add workingfilectx.markcopied
Phil Cohen <phillco@fb.com> [Sun, 15 Oct 2017 20:36:29 -0700] rev 34787
context: add workingfilectx.markcopied With in-memory merge, copy information needs to be stored in-memory, not in the dirstate. To make this transition easy, move the existing dirstate-based approach to workingfilectx; that way, other implementations can choose to store it somewhere else. Differential Revision: https://phab.mercurial-scm.org/D1106
Sun, 15 Oct 2017 20:36:29 -0700 merge: don't use workers in in-memory mode
Phil Cohen <phillco@fb.com> [Sun, 15 Oct 2017 20:36:29 -0700] rev 34786
merge: don't use workers in in-memory mode The worker processes can't share memory, so workers should not be used. Differential Revision: https://phab.mercurial-scm.org/D1105
Sun, 15 Oct 2017 20:36:29 -0700 filemerge: add a missing flushall()
Phil Cohen <phillco@fb.com> [Sun, 15 Oct 2017 20:36:29 -0700] rev 34785
filemerge: add a missing flushall() Differential Revision: https://phab.mercurial-scm.org/D1060
Fri, 13 Oct 2017 12:34:22 -0700 filemerge: store backups in the overlayworkingctx if using imm
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:34:22 -0700] rev 34784
filemerge: store backups in the overlayworkingctx if using imm Differential Revision: https://phab.mercurial-scm.org/D1059
Fri, 13 Oct 2017 12:34:22 -0700 context: add overlayfilectx.cmp()
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:34:22 -0700] rev 34783
context: add overlayfilectx.cmp() Differential Revision: https://phab.mercurial-scm.org/D1058
Mon, 16 Oct 2017 13:10:55 -0700 filemerge: use arbitraryfilectx for backups
Phil Cohen <phillco@fb.com> [Mon, 16 Oct 2017 13:10:55 -0700] rev 34782
filemerge: use arbitraryfilectx for backups With in-memory merge, backup files might be overlayworkingfilectxs stored in memory. But they could also be real files if the user's backup directory is outside the working dir. Rather than have two code paths everywhere, let's use arbitraryfilectx so they can be consistent. Differential Revision: https://phab.mercurial-scm.org/D1057
Wed, 20 Sep 2017 04:47:43 +0530 registrar: add support for storing the type of command in func object
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 20 Sep 2017 04:47:43 +0530] rev 34781
registrar: add support for storing the type of command in func object This patch adds support for storing the type of command which is going to run in the func object. For this it does the following: 1) Add three possible values as attributes to the registrar.command class 2) Add a new argument to registrar.command._doregister function 3) Add a new attribute cmdtype to the func object The type of command will be helpful in deciding what level of access on hidden commits it can has. Differential Revision: https://phab.mercurial-scm.org/D736
Mon, 16 Oct 2017 22:19:02 +0530 releasenotes: fix documentation of similaritycheck()
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 16 Oct 2017 22:19:02 +0530] rev 34780
releasenotes: fix documentation of similaritycheck() The function document says that it returns true when the fragment can be merged, but if you see the function just above it which is similar(), it writes already exists thing if return value from similaritycheck() is False which is just opposite of the doc. This patch fixes that. Differential Revision: https://phab.mercurial-scm.org/D1119
Sat, 14 Oct 2017 01:15:01 +0200 configitems: register acl config section
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 01:15:01 +0200] rev 34779
configitems: register acl config section
Sat, 14 Oct 2017 00:34:46 +0200 configitems: register the 'extdata.*.diffargs' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:34:46 +0200] rev 34778
configitems: register the 'extdata.*.diffargs' config
Sat, 14 Oct 2017 00:33:57 +0200 configitems: register the 'exdiff.opts.*' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:33:57 +0200] rev 34777
configitems: register the 'exdiff.opts.*' config
Sat, 14 Oct 2017 00:30:14 +0200 configitems: register the 'hostsecurity.*:verifycertsfile' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:30:14 +0200] rev 34776
configitems: register the 'hostsecurity.*:verifycertsfile' config
Sat, 14 Oct 2017 00:29:31 +0200 configitems: register the 'hostsecurity.*:fingerprints' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:29:31 +0200] rev 34775
configitems: register the 'hostsecurity.*:fingerprints' config
Sat, 14 Oct 2017 00:28:48 +0200 configitems: register the 'hostsecurity.*:ciphers' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:28:48 +0200] rev 34774
configitems: register the 'hostsecurity.*:ciphers' config
Sat, 14 Oct 2017 00:28:13 +0200 configitems: register the 'hostsecurity.*:minimumprotocol' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:28:13 +0200] rev 34773
configitems: register the 'hostsecurity.*:minimumprotocol' config
Sat, 14 Oct 2017 00:16:12 +0200 configitems: register the test 'fakepatchtime.fakenow' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:16:12 +0200] rev 34772
configitems: register the test 'fakepatchtime.fakenow' config
Sat, 14 Oct 2017 00:15:37 +0200 configitems: register the test 'fakedirstatewritetime.fakenow' config
Boris Feld <boris.feld@octobus.net> [Sat, 14 Oct 2017 00:15:37 +0200] rev 34771
configitems: register the test 'fakedirstatewritetime.fakenow' config
Fri, 13 Oct 2017 23:26:16 +0200 configitems: register the 'gpg' arbitraty key section
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:26:16 +0200] rev 34770
configitems: register the 'gpg' arbitraty key section
Fri, 13 Oct 2017 23:23:48 +0200 configitems: register the 'extdata' section
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:23:48 +0200] rev 34769
configitems: register the 'extdata' section
Fri, 13 Oct 2017 23:33:31 +0200 configitems: fix registration of extensions config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:33:31 +0200] rev 34768
configitems: fix registration of extensions config The new 'itemregister' class should be used when loading the extension config. This was and oversight when itemregister was introduced.
Wed, 11 Oct 2017 23:33:59 +0200 configitems: register the test config in 'test-push-race.t'
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 23:33:59 +0200] rev 34767
configitems: register the test config in 'test-push-race.t'
Wed, 11 Oct 2017 04:33:00 +0200 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 04:33:00 +0200] rev 34766
configitems: register the test 'ui.ioerrors' config
Fri, 13 Oct 2017 23:53:06 +0200 configitems: register the test 'failafterfinalize.fail' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:53:06 +0200] rev 34765
configitems: register the test 'failafterfinalize.fail' config
Fri, 13 Oct 2017 23:46:37 +0200 configitems: register the test 'logtoprocess.foo' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:46:37 +0200] rev 34764
configitems: register the test 'logtoprocess.foo' config
Fri, 13 Oct 2017 23:10:49 +0200 configitems: register the test 'failpush.reason' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:10:49 +0200] rev 34763
configitems: register the test 'failpush.reason' config
Fri, 13 Oct 2017 23:07:12 +0200 configitems: register the 'patchbomb.reply-to' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:07:12 +0200] rev 34762
configitems: register the 'patchbomb.reply-to' config
Fri, 13 Oct 2017 23:07:01 +0200 configitems: register the 'patchbomb.cc' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:07:01 +0200] rev 34761
configitems: register the 'patchbomb.cc' config
Fri, 13 Oct 2017 23:06:40 +0200 configitems: register the 'patchbomb.bcc' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:06:40 +0200] rev 34760
configitems: register the 'patchbomb.bcc' config
Fri, 13 Oct 2017 23:03:46 +0200 configitems: register the 'web.staticurl' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 23:03:46 +0200] rev 34759
configitems: register the 'web.staticurl' config
Thu, 12 Oct 2017 00:38:18 +0200 configitems: register the 'experimental.uncommitondirtywdir' config
Boris Feld <boris.feld@octobus.net> [Thu, 12 Oct 2017 00:38:18 +0200] rev 34758
configitems: register the 'experimental.uncommitondirtywdir' config
Fri, 13 Oct 2017 22:28:03 +0200 configitems: register the 'largefiles.usercache' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 22:28:03 +0200] rev 34757
configitems: register the 'largefiles.usercache' config
Fri, 13 Oct 2017 22:26:58 +0200 configitems: register the 'largefiles.patterns' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 22:26:58 +0200] rev 34756
configitems: register the 'largefiles.patterns' config
Fri, 13 Oct 2017 22:26:03 +0200 configitems: register the 'largefiles.minsize' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 22:26:03 +0200] rev 34755
configitems: register the 'largefiles.minsize' config
Fri, 13 Oct 2017 21:50:43 +0200 configitem: register the 'notify.changegroup' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 21:50:43 +0200] rev 34754
configitem: register the 'notify.changegroup' config
Fri, 13 Oct 2017 21:50:32 +0200 configitem: register the 'notify.outgoing' config
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 21:50:32 +0200] rev 34753
configitem: register the 'notify.outgoing' config
Thu, 12 Oct 2017 00:57:49 +0200 configitem: register the 'notify.incoming' config
Boris Feld <boris.feld@octobus.net> [Thu, 12 Oct 2017 00:57:49 +0200] rev 34752
configitem: register the 'notify.incoming' config
Thu, 12 Oct 2017 00:44:45 +0200 configitems: register the 'hgweb-paths' section
Boris Feld <boris.feld@octobus.net> [Thu, 12 Oct 2017 00:44:45 +0200] rev 34751
configitems: register the 'hgweb-paths' section
Fri, 13 Oct 2017 21:32:29 +0200 contrib-perf: register the 'parentscount' config item
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 21:32:29 +0200] rev 34750
contrib-perf: register the 'parentscount' config item
Fri, 13 Oct 2017 21:31:24 +0200 contrib-perf: update the config registration
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 21:31:24 +0200] rev 34749
contrib-perf: update the config registration There are various issue with the previous code, all hidden by the try-except clause. These are fixed now.
Thu, 12 Oct 2017 00:20:41 +0200 configitems: register the 'hostfingerprints' section
Boris Feld <boris.feld@octobus.net> [Thu, 12 Oct 2017 00:20:41 +0200] rev 34748
configitems: register the 'hostfingerprints' section
Thu, 12 Oct 2017 00:19:12 +0200 configitems: register the 'hostsecurity.minimumprotocol' config
Boris Feld <boris.feld@octobus.net> [Thu, 12 Oct 2017 00:19:12 +0200] rev 34747
configitems: register the 'hostsecurity.minimumprotocol' config
Wed, 11 Oct 2017 22:53:17 +0200 configitems: register the 'progress.format' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 22:53:17 +0200] rev 34746
configitems: register the 'progress.format' config
Wed, 11 Oct 2017 22:51:23 +0200 configitems: register the 'blackbox.maxfiles' config
Boris Feld <boris.feld@octobus.net> [Wed, 11 Oct 2017 22:51:23 +0200] rev 34745
configitems: register the 'blackbox.maxfiles' config
Sun, 15 Oct 2017 00:43:01 -0400 hgweb: fix decodevaluefromheaders to always return a bytes value
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:43:01 -0400] rev 34744
hgweb: fix decodevaluefromheaders to always return a bytes value That's more in line with what we want, and we know it's ASCII data since that's all HTTP technically allows in headers anyway. Differential Revision: https://phab.mercurial-scm.org/D1112
Sun, 15 Oct 2017 00:42:25 -0400 hgweb: more "headers are native strs" cleanup
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:42:25 -0400] rev 34743
hgweb: more "headers are native strs" cleanup I'll fix the decodevaluefromheaders function in an upcoming change. Differential Revision: https://phab.mercurial-scm.org/D1111
Sun, 15 Oct 2017 00:41:34 -0400 hgweb: when unpacking args from request form, convert to bytes
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:41:34 -0400] rev 34742
hgweb: when unpacking args from request form, convert to bytes We assume http-originated values are ASCII, which should be safe based on the RFC. Differential Revision: https://phab.mercurial-scm.org/D1110
Sun, 15 Oct 2017 00:39:53 -0400 wireproto: more strkwargs cleanup
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:39:53 -0400] rev 34741
wireproto: more strkwargs cleanup Differential Revision: https://phab.mercurial-scm.org/D1109
Sun, 15 Oct 2017 00:38:33 -0400 hgweb: more "http headers are native strs" cleanup
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:38:33 -0400] rev 34740
hgweb: more "http headers are native strs" cleanup Differential Revision: https://phab.mercurial-scm.org/D1108
Sun, 15 Oct 2017 00:05:43 -0400 wireproto: bounce kwargs to/from bytes/str as needed
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:05:43 -0400] rev 34739
wireproto: bounce kwargs to/from bytes/str as needed Differential Revision: https://phab.mercurial-scm.org/D1107
Mon, 16 Oct 2017 15:12:50 +0200 configitems: fixup default value of annotate config option
Boris Feld <boris.feld@octobus.net> [Mon, 16 Oct 2017 15:12:50 +0200] rev 34738
configitems: fixup default value of annotate config option It turned out that configbool is used for most of them so the registered default value was wrong.
Mon, 16 Oct 2017 15:35:08 +0200 transaction-summary: use a revset to filter obsoletes in reportnewcs()
Denis Laxalde <denis@laxalde.org> [Mon, 16 Oct 2017 15:35:08 +0200] rev 34737
transaction-summary: use a revset to filter obsoletes in reportnewcs() Thanks to Yuya Nishihara for suggesting.
Sun, 15 Oct 2017 20:32:10 +0530 releasenotes: add pager support when printing to the ui
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 15 Oct 2017 20:32:10 +0530] rev 34736
releasenotes: add pager support when printing to the ui Differential Revision: https://phab.mercurial-scm.org/D1098
Fri, 13 Oct 2017 22:08:55 +0200 configitems: fixup default value of diff config option
Boris Feld <boris.feld@octobus.net> [Fri, 13 Oct 2017 22:08:55 +0200] rev 34735
configitems: fixup default value of diff config option It turned out that configbool is used for most of them so the registered default value was wrong.
Sun, 08 Oct 2017 21:42:32 +0200 devel-warn: add 'warn-' to 'devel.empty-changegroup' config
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 21:42:32 +0200] rev 34734
devel-warn: add 'warn-' to 'devel.empty-changegroup' config Rename 'devel.empty-changegroup' to 'devel.warn-empty- changegroup' in order to clarify it controls a warning message. No alias is installed since the previous configuration option was not documented.
Sun, 15 Oct 2017 00:05:00 -0400 peer: ensure command names are always ascii bytestrs
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:05:00 -0400] rev 34733
peer: ensure command names are always ascii bytestrs Differential Revision: https://phab.mercurial-scm.org/D1104
Sun, 15 Oct 2017 00:03:31 -0400 httppeer: always produce native str header keys and values
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:03:31 -0400] rev 34732
httppeer: always produce native str header keys and values Differential Revision: https://phab.mercurial-scm.org/D1103
Sun, 15 Oct 2017 00:40:07 -0400 wireproto: use %d to encode int, not %s
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:40:07 -0400] rev 34731
wireproto: use %d to encode int, not %s Differential Revision: https://phab.mercurial-scm.org/D1102
Sun, 15 Oct 2017 00:06:06 -0400 wireproto: use a proper exception instead of `assert False`
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:06:06 -0400] rev 34730
wireproto: use a proper exception instead of `assert False` Differential Revision: https://phab.mercurial-scm.org/D1101
Sun, 15 Oct 2017 00:39:29 -0400 wireproto: use listcomp instead of map()
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:39:29 -0400] rev 34729
wireproto: use listcomp instead of map() The latter returns a generator object on Python 3, which breaks various parts of hg that expected a list. Differential Revision: https://phab.mercurial-scm.org/D1100
Sun, 15 Oct 2017 00:37:24 -0400 dagutil: use a listcomp instead of a map()
Augie Fackler <augie@google.com> [Sun, 15 Oct 2017 00:37:24 -0400] rev 34728
dagutil: use a listcomp instead of a map() In Python 3, the map() returns a generator object instead of a list, and some parts of hg depend on this being consumable more than once or sortable in place. Differential Revision: https://phab.mercurial-scm.org/D1099
Sat, 14 Oct 2017 12:03:42 -0400 peer: when collecting method names for batch calls, bytes-ify __name__
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 12:03:42 -0400] rev 34727
peer: when collecting method names for batch calls, bytes-ify __name__ This will explode violently if we have a non-ascii command name. That shouldn't ever happen in core, and seems unlikely even in third-party code. Regardless, it'll explode violently, so we can revisit things in the future if we need to change the encoding here. Differential Revision: https://phab.mercurial-scm.org/D1092
Sat, 14 Oct 2017 12:02:15 -0400 python3: replace im_{self,func} with __{self,func}__ globally
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 12:02:15 -0400] rev 34726
python3: replace im_{self,func} with __{self,func}__ globally These new names are portable back to Python 2.6. Differential Revision: https://phab.mercurial-scm.org/D1091
Sat, 14 Oct 2017 12:00:35 -0400 httppeer: extract content-type from headers using native str
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 12:00:35 -0400] rev 34725
httppeer: extract content-type from headers using native str Differential Revision: https://phab.mercurial-scm.org/D1090
Sat, 14 Oct 2017 11:59:51 -0400 httppeer: convert request url back to bytes before inspecting it
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 11:59:51 -0400] rev 34724
httppeer: convert request url back to bytes before inspecting it Differential Revision: https://phab.mercurial-scm.org/D1089
Sat, 14 Oct 2017 11:30:17 -0400 templater: explode if we try to emit a str
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 11:30:17 -0400] rev 34723
templater: explode if we try to emit a str Without this if branch, we infinitely recurse in _flatten, which is very confusing. Something in an hgweb template is trying to write out a string instead of a bytes on Python 3, and this at least makes it crash politely. Differential Revision: https://phab.mercurial-scm.org/D1088
Sat, 14 Oct 2017 11:20:31 -0400 hgweb: fill in content-type and content-length as native strings
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 11:20:31 -0400] rev 34722
hgweb: fill in content-type and content-length as native strings This lets me actually get a capabilities response from hgweb over http. Differential Revision: https://phab.mercurial-scm.org/D1087
Sat, 14 Oct 2017 10:47:29 -0400 hgweb: mimetype guessing needs a unicode path
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 10:47:29 -0400] rev 34721
hgweb: mimetype guessing needs a unicode path Differential Revision: https://phab.mercurial-scm.org/D1086
Sat, 14 Oct 2017 15:37:33 -0400 hgweb: set sent_headers attr as early as practical
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:37:33 -0400] rev 34720
hgweb: set sent_headers attr as early as practical While doing Python 3 porting work, I've seen exceptions happen in parts of hgweb we normally assume are robust. It won't hurt anything to set this attribute significantly earlier, so let's do so and save confusing during the porting process. Differential Revision: https://phab.mercurial-scm.org/D1085
Thu, 05 Oct 2017 14:53:52 -0400 hgweb: detect Python 3-era libraries and use modern attribute names
Augie Fackler <augie@google.com> [Thu, 05 Oct 2017 14:53:52 -0400] rev 34719
hgweb: detect Python 3-era libraries and use modern attribute names Differential Revision: https://phab.mercurial-scm.org/D1084
Sat, 14 Oct 2017 15:53:36 -0400 server: indent block that's about to get conditionalized
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:53:36 -0400] rev 34718
server: indent block that's about to get conditionalized Differential Revision: https://phab.mercurial-scm.org/D1083
Sat, 14 Oct 2017 18:41:20 +0900 templates: fix missed space between instability labels
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 18:41:20 +0900] rev 34717
templates: fix missed space between instability labels
Sat, 14 Oct 2017 18:24:01 +0900 templates: introduce labelcset() function in map-cmdline.default as example
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 18:24:01 +0900] rev 34716
templates: introduce labelcset() function in map-cmdline.default as example
Sat, 14 Oct 2017 18:06:42 +0900 templater: load aliases from [templatealias] section in map file
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 18:06:42 +0900] rev 34715
templater: load aliases from [templatealias] section in map file This seems sometimes useful as an alias can be a function, but a template fragment can't.
Sat, 14 Oct 2017 17:51:01 +0900 templater: load template fragments from [templates] section in map file
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 17:51:01 +0900] rev 34714
templater: load template fragments from [templates] section in map file This allows us to %include map-cmdline.<style> file in our .hgrc files. The syntax is slightly different as hgrc doesn't support loading an external template file, but map-cmdline files don't use this feature, so the syntax can be considered identical in practice. Unnamed section is remapped for backward compatibility.
Sat, 14 Oct 2017 17:41:41 +0900 config: allow remapping the default section
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Oct 2017 17:41:41 +0900] rev 34713
config: allow remapping the default section The next patch depends on it. It doesn't make sense that the default section can't be remapped with {'': whatever}.
Sat, 20 Aug 2016 18:33:02 +0900 templater: simplify merge of __base__ dicts by reading it first
Yuya Nishihara <yuya@tcha.org> [Sat, 20 Aug 2016 18:33:02 +0900] rev 34712
templater: simplify merge of __base__ dicts by reading it first
Sun, 08 Oct 2017 17:23:18 +0200 phase: add a dedicated pretxnclose-phase hook
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 17:23:18 +0200] rev 34711
phase: add a dedicated pretxnclose-phase hook This new hook mirror the newly introduced 'txnclose-phase' but can abort the transaction.
Sun, 08 Oct 2017 17:50:46 +0200 phase: add a dedicated txnclose-phase hook
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 17:50:46 +0200] rev 34710
phase: add a dedicated txnclose-phase hook The new 'txnclose-phase' hook expose the phase movement information stored in 'tr.changes['phases]'. To provide a simple and straightforward hook API to the users, we introduce a new hook called for each revision affected. Since a transaction can affect the phase of multiple changesets, updating the existing 'txnclose' hook to expose that information would be more complex. The data for all moves will not fit in environment variables and iterations over each move would be cumbersome. So the introduction of a new dedicated hook is preferred in this changesets. This does not exclude the addition of the full phase movement information to the existing 'txnclose' in the future to help write more complex hooks.
Sun, 08 Oct 2017 18:50:14 +0200 bookmark: add a dedicated pretxnclose-bookmark hook
Boris Feld <boris.feld@octobus.net> [Sun, 08 Oct 2017 18:50:14 +0200] rev 34709
bookmark: add a dedicated pretxnclose-bookmark hook This new hook mirror the newly introduced 'txnclose-bookmark' but can abort the transaction.
Tue, 10 Oct 2017 17:53:42 +0200 bookmark: add a dedicated txnclose-bookmark hook
Boris Feld <boris.feld@octobus.net> [Tue, 10 Oct 2017 17:53:42 +0200] rev 34708
bookmark: add a dedicated txnclose-bookmark hook The new 'txnclose-bookmark' hook expose the bookmark movement information stored in 'tr.changes['bookmarks]'. To provide a simple and straightforward hook API to the users, we introduce a new hook called for each bookmark touched. Since a transaction can affect multiple bookmarks, updating the existing 'txnclose' hook to expose that information would be more complex. The data for all moves might not fit in environment variables and iterations over each move would be cumbersome. So the introduction of a new dedicated hook is preferred in this changeset. This does not exclude the addition to the full bookmark information to the existing 'txnclose' in the future to help write more complex hooks.
Fri, 13 Oct 2017 15:58:54 -0400 tweakdefaults: make commands.update.check be `noconflict`
Augie Fackler <augie@google.com> [Fri, 13 Oct 2017 15:58:54 -0400] rev 34707
tweakdefaults: make commands.update.check be `noconflict` This is the second-safest option we have to offer in `updatecheck`, with `abort` being the safest and `linear` being the default. At the sprint we discussed how much `none` and `linear` make us all uncomfortable, and how we'd like to move the default behavior if we can. I'm not sure we can get away with actually changing the out of the box default behavior, but we can at *least* do this. Differential Revision: https://phab.mercurial-scm.org/D1062
Sat, 14 Oct 2017 15:43:06 -0400 hgweb: fix logging to use native strings as appropriate
Augie Fackler <augie@google.com> [Sat, 14 Oct 2017 15:43:06 -0400] rev 34706
hgweb: fix logging to use native strings as appropriate Kind of a tangled mess, but now logging works in both Python 2 and 3. # no-check-commit because of the interface required by Python's HTTP server code. Differential Revision: https://phab.mercurial-scm.org/D1080
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip