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
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
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip