Thu, 31 May 2018 17:31:46 +0200 perftemplating: move template formating into its own function
Boris Feld <boris.feld@octobus.net> [Thu, 31 May 2018 17:31:46 +0200] rev 38266
perftemplating: move template formating into its own function The lambda is not practical when time will come to alter the benchmark code.
Thu, 31 May 2018 18:05:15 +0200 perftemplating: fix the revisions argument
Boris Feld <boris.feld@octobus.net> [Thu, 31 May 2018 18:05:15 +0200] rev 38265
perftemplating: fix the revisions argument Before this change, the argument passed to log where a string instead of a list of string. This meant only single character rev were supported... We now properly accepts argument of any length. We also make it possible to specify multiple REV arguments in the same go.
Sat, 09 Jun 2018 15:14:31 +0530 py3: make sure util.username() always returns bytes
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Jun 2018 15:14:31 +0530] rev 38264
py3: make sure util.username() always returns bytes Differential Revision: https://phab.mercurial-scm.org/D3706
Sat, 09 Jun 2018 15:01:04 +0530 py3: add b'' prefix to make the regex bytes
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 09 Jun 2018 15:01:04 +0530] rev 38263
py3: add b'' prefix to make the regex bytes # skip-blame because just b'' prefixes Differential Revision: https://phab.mercurial-scm.org/D3705
Tue, 05 Jun 2018 02:50:25 +0200 phases: use "published" in the phase movement message
Boris Feld <boris.feld@octobus.net> [Tue, 05 Jun 2018 02:50:25 +0200] rev 38262
phases: use "published" in the phase movement message Using "published" seems smoother than "became public" and more in line with the "phase.publishing" configuration.
Tue, 05 Jun 2018 01:49:52 +0200 phase: clarify the message about movement on command changeset
Boris Feld <boris.feld@octobus.net> [Tue, 05 Jun 2018 01:49:52 +0200] rev 38261
phase: clarify the message about movement on command changeset The current message is a bit generic. Since we only print it for phase movement on changeset already common before the pull, we add "local" to the message in and attempt to clarify what changeset the phase movement affected.
Sun, 29 Apr 2018 00:29:40 -0400 fuzz: try and generate an interesting mpatch seed from a repo
Augie Fackler <augie@google.com> [Sun, 29 Apr 2018 00:29:40 -0400] rev 38260
fuzz: try and generate an interesting mpatch seed from a repo Differential Revision: https://phab.mercurial-scm.org/D3697
Sun, 29 Apr 2018 00:04:16 -0400 fuzz: structured helpers for creating mpatch seed corpus entries
Augie Fackler <augie@google.com> [Sun, 29 Apr 2018 00:04:16 -0400] rev 38259
fuzz: structured helpers for creating mpatch seed corpus entries Maybe this is better. I'm not sold, honestly. Differential Revision: https://phab.mercurial-scm.org/D3696
Sat, 28 Apr 2018 22:35:14 -0400 fuzz: new fuzzer for the mpatch code
Augie Fackler <augie@google.com> [Sat, 28 Apr 2018 22:35:14 -0400] rev 38258
fuzz: new fuzzer for the mpatch code Differential Revision: https://phab.mercurial-scm.org/D3695
Thu, 07 Jun 2018 21:09:16 +0200 run-tests: follow-up on the test-case format
Boris Feld <boris.feld@octobus.net> [Thu, 07 Jun 2018 21:09:16 +0200] rev 38257
run-tests: follow-up on the test-case format It turns out the original regex doesn't support real test cases names like the one Mercurial is using. Update the regex to being able to precisely select them on the command line. Differential Revision: https://phab.mercurial-scm.org/D3699
Fri, 04 May 2018 12:43:15 +0900 templater: resolve type of dict key in getmember()
Yuya Nishihara <yuya@tcha.org> [Fri, 04 May 2018 12:43:15 +0900] rev 38256
templater: resolve type of dict key in getmember() This seems more correct and is consistent with the future wrapped.contains() function, where a key type has to be resolved depending on a container type.
Wed, 21 Mar 2018 11:30:21 +0900 templater: promote getmember() to an interface of wrapped types
Yuya Nishihara <yuya@tcha.org> [Wed, 21 Mar 2018 11:30:21 +0900] rev 38255
templater: promote getmember() to an interface of wrapped types
Wed, 21 Mar 2018 01:39:44 +0900 templater: move getdictitem() to hybrid class
Yuya Nishihara <yuya@tcha.org> [Wed, 21 Mar 2018 01:39:44 +0900] rev 38254
templater: move getdictitem() to hybrid class Since a raw dict will never be returned by evalwrapped(), we don't need to support d.get(key).
Sat, 21 Apr 2018 17:43:16 +0900 templater: add try-except stub to runmember()
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Apr 2018 17:43:16 +0900] rev 38253
templater: add try-except stub to runmember() New wrapped interface will raise ParseError if the underlying object doesn't support dict-like lookup operation.
Wed, 21 Mar 2018 01:18:29 +0900 templater: do dict lookup over a wrapped object
Yuya Nishihara <yuya@tcha.org> [Wed, 21 Mar 2018 01:18:29 +0900] rev 38252
templater: do dict lookup over a wrapped object Dict/list lookup operations will be moved to a wrapped interface so that a returned element can inherit hybrid-ness automatically. wraphybridvalue() will be inlined.
Wed, 06 Jun 2018 13:31:24 -0400 merge with stable
Augie Fackler <augie@google.com> [Wed, 06 Jun 2018 13:31:24 -0400] rev 38251
merge with stable
Sat, 26 May 2018 03:01:14 +0530 graft: reuse the --log value passed initially in `hg graft --continue` (BC)
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 26 May 2018 03:01:14 +0530] rev 38250
graft: reuse the --log value passed initially in `hg graft --continue` (BC) We now stores the value of --log flag passed initially in the graftstate and reuse that value when doing `hg graft --continue` which is a nice behavior. The test updates demonstrate the fix. Since we now preserve the value by default, drop the mention of `--log` flag from the hint which we see after conflicts. Differential Revision: https://phab.mercurial-scm.org/D3662
Sat, 26 May 2018 02:57:36 +0530 graft: add test showing --continue not preserving --log passed earlier
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 26 May 2018 02:57:36 +0530] rev 38249
graft: add test showing --continue not preserving --log passed earlier This patch shows that when we do `hg graft --continue`, the value of --log flag passed when initial graft was run was not used. Next patch will fix this and tests will help us in realising that. Differential Revision: https://phab.mercurial-scm.org/D3661
Sun, 03 Jun 2018 13:40:58 +0900 test-fuzz-targets: look for clang-6.0 binary as well
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:40:58 +0900] rev 38248
test-fuzz-targets: look for clang-6.0 binary as well Debian sid is still shipped with clang 4.0 by default. This allows me to run the test without replacing the system clang to clang-6.0.
Sun, 03 Jun 2018 13:23:12 +0900 test-fuzz-targets: rebuild executable silently
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:23:12 +0900] rev 38247
test-fuzz-targets: rebuild executable silently This makes sure the build is not broken.
Sun, 03 Jun 2018 13:21:13 +0900 fuzz: fix "make clean" to pass even if no binaries built yet
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:21:13 +0900] rev 38246
fuzz: fix "make clean" to pass even if no binaries built yet
Sun, 03 Jun 2018 13:18:13 +0900 fuzz: compile xdiff.cc with -std=c++17
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:18:13 +0900] rev 38245
fuzz: compile xdiff.cc with -std=c++17 Otherwise the build would fail as follows: In file included from xdiff.cc:13: ./fuzzutil.h:23:10: fatal error: 'third_party/absl/types/optional.h' file not found #include "third_party/absl/types/optional.h"
Sun, 03 Jun 2018 13:12:32 +0900 fuzz: fix use of undeclared function memcpy()
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:12:32 +0900] rev 38244
fuzz: fix use of undeclared function memcpy()
Sun, 03 Jun 2018 13:11:49 +0900 fuzz: fix the default make target
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:11:49 +0900] rev 38243
fuzz: fix the default make target
Sun, 03 Jun 2018 13:11:22 +0900 fuzz: expand variables by make
Yuya Nishihara <yuya@tcha.org> [Sun, 03 Jun 2018 13:11:22 +0900] rev 38242
fuzz: expand variables by make Otherwise it wouldn't work unless CC and CXX were exported from the environment.
Sat, 21 Apr 2018 17:21:31 +0900 templater: always map over a wrapped object
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Apr 2018 17:21:31 +0900] rev 38241
templater: always map over a wrapped object _checkeditermaps() is no longer necessary as the hgweb issue was resolved.
Sat, 21 Apr 2018 17:15:11 +0900 templater: consistently join() string-like object per character (BC)
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Apr 2018 17:15:11 +0900] rev 38240
templater: consistently join() string-like object per character (BC) The old behavior was copied from join() of a lazy generator string, which was unified to the behavior of join() of a byte string by the previous patch. This patch fixes the mappable type to do the same.
Sat, 21 Apr 2018 17:00:21 +0900 templater: always join() over a wrapped object (BC)
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Apr 2018 17:00:21 +0900] rev 38239
templater: always join() over a wrapped object (BC) This is a behavior change in a sense that join() of a byte string is no longer "implementation dependent." Before, if a byte string was backed by a lazy generator, join() would concatenate each chunk with the specified separator, which seems wrong. The new behavior is always join() each byte. TypeError on join() over uniterable is also fixed.
Tue, 20 Mar 2018 23:56:26 +0900 templater: add wrapped types for pure non-list/dict values
Yuya Nishihara <yuya@tcha.org> [Tue, 20 Mar 2018 23:56:26 +0900] rev 38238
templater: add wrapped types for pure non-list/dict values These wrapper types will allow us to get rid of some isinstance() business. A bytes object needs to support sequence-like operations (e.g. join(), ifcontains(), etc.) That's why we have two wrapper classes. Tests will be added later.
Wed, 04 Apr 2018 21:06:14 +0900 templater: unify unwrapvalue() with _unwrapvalue()
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 21:06:14 +0900] rev 38237
templater: unify unwrapvalue() with _unwrapvalue() All weird generators got removed from the hgweb codebase. We still have inconsistent behavior regarding join() of a byte string, which will be addressed later.
Wed, 04 Apr 2018 21:01:21 +0900 templater: inline unwrapvalue()
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 21:01:21 +0900] rev 38236
templater: inline unwrapvalue() The current unwrapvalue() will be superseded by _unwrapvalue(). Note that _unwrapvalue() can simply return thing.tovalue() if thing is a wrapped object. That's because tovalue() is guaranteed to not return a generator of strings.
Sun, 13 May 2018 23:18:26 +0200 run-tests: update the test case name format
Boris Feld <boris.feld@octobus.net> [Sun, 13 May 2018 23:18:26 +0200] rev 38235
run-tests: update the test case name format Manually typing parenthesis and spaces will be tedious when trying to launch a specific test case. I'm proposing a simpler format that is less hard to remember and type right. There was other possibilities envisaged like `::` or `!`, I think `#` is slight easier to type but I'm open to any suggestion on the new format. Differential Revision: https://phab.mercurial-scm.org/D3556
Thu, 26 Apr 2018 23:57:20 +0200 run-tests: add support for running specific test cases
Boris Feld <boris.feld@octobus.net> [Thu, 26 Apr 2018 23:57:20 +0200] rev 38234
run-tests: add support for running specific test cases Differential Revision: https://phab.mercurial-scm.org/D3555
Sun, 03 Jun 2018 17:02:38 +0530 configitems: drop the deprecated alias for commands.update.check
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 03 Jun 2018 17:02:38 +0530] rev 38233
configitems: drop the deprecated alias for commands.update.check experimental.updatecheck was deprecated and should have been removed once 4.4 was released. Let's drop it now. Differential Revision: https://phab.mercurial-scm.org/D3679
Sat, 02 Jun 2018 15:55:28 +0530 graft: correct documentation about options can be reapplied
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 02 Jun 2018 15:55:28 +0530] rev 38232
graft: correct documentation about options can be reapplied Now options --user and --date can be reapplied after we hit a conflict. Differential Revision: https://phab.mercurial-scm.org/D3678
Sat, 02 Jun 2018 22:18:12 -0400 cmdutil: use internal separators when building the terse list
Matt Harbison <matt_harbison@yahoo.com> [Sat, 02 Jun 2018 22:18:12 -0400] rev 38231
cmdutil: use internal separators when building the terse list Status uses internal separators, so this is more correct. See c974320d20b9 and 362096cfdb1f. A utility method is still needed, so that the paths starting with '/' aren't created when `self.path` is empty.
Wed, 30 May 2018 14:20:09 +0530 advanceboundary: add dryrun parameter
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 30 May 2018 14:20:09 +0530] rev 38230
advanceboundary: add dryrun parameter Added logic to find those csets whose phase will be changed (when running without --dryrun) while advancing boundary and return those csets. Differential Revision: https://phab.mercurial-scm.org/D3671
Wed, 30 May 2018 17:37:17 +0530 grep: enable passing wdir as a revision
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Wed, 30 May 2018 17:37:17 +0530] rev 38229
grep: enable passing wdir as a revision When you pass wdir() to the -r flag, it catches the WdirUnsupported error and falls back to an alternate path. Differential Revision: https://phab.mercurial-scm.org/D3673
Fri, 01 Jun 2018 23:33:17 -0400 outgoing: drop an extraneous URL parse
Matt Harbison <matt_harbison@yahoo.com> [Fri, 01 Jun 2018 23:33:17 -0400] rev 38228
outgoing: drop an extraneous URL parse This was left over from dfb888aae17a. 'branches' wasn't used, and the only thing parseurl() would do is slice any branch fragment off 'dest'. But path.loc and path.pushloc already have the fragment removed.
Mon, 14 May 2018 12:38:05 +0200 config: rename allow_archive to allow-archive
David Demelier <markand@malikania.fr> [Mon, 14 May 2018 12:38:05 +0200] rev 38227
config: rename allow_archive to allow-archive As part of ConfigConsolidationPlan [1], rename the option according to the new UI guidelines [2] and add an alias for backward compatibility. [1]: https://www.mercurial-scm.org/wiki/ConfigConsolidationPlan [2]: https://www.mercurial-scm.org/wiki/UIGuideline#adding_new_options
Sat, 21 Apr 2018 17:31:03 +0900 hgweb: fill {rename} even if ?linerange is specified
Yuya Nishihara <yuya@tcha.org> [Sat, 21 Apr 2018 17:31:03 +0900] rev 38226
hgweb: fill {rename} even if ?linerange is specified Otherwise, {rename % ...} would fail. Hopefully this is the last hgweb patch so I can start fixing templater stuff.
Wed, 04 Apr 2018 20:53:16 +0900 hgweb: wrap {earlycommands} and {othercommands} of help with mappinggenerator
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:53:16 +0900] rev 38225
hgweb: wrap {earlycommands} and {othercommands} of help with mappinggenerator They were generators of mappings.
Wed, 04 Apr 2018 20:51:49 +0900 hgweb: wrap {topics}es of help with mappinggenerator or mappinglist
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:51:49 +0900] rev 38224
hgweb: wrap {topics}es of help with mappinggenerator or mappinglist The former 'topics' was a generator function, and the latter was a list of mappings.
Wed, 04 Apr 2018 20:48:37 +0900 hgweb: wrap {edges} of {nodes} of graph with mappinglist
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:48:37 +0900] rev 38223
hgweb: wrap {edges} of {nodes} of graph with mappinglist This was a list of mappings.
Wed, 04 Apr 2018 20:48:00 +0900 hgweb: wrap {nodes} of graph with mappinggenerator
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:48:00 +0900] rev 38222
hgweb: wrap {nodes} of graph with mappinggenerator It was a generator of mappings, which shouldn't be put in template mappings.
Wed, 04 Apr 2018 20:46:12 +0900 hgweb: adapt {jsdata} of graph to mappinggenerator
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:46:12 +0900] rev 38221
hgweb: adapt {jsdata} of graph to mappinggenerator The laziness is handled by the mappinggenerator class.
Wed, 04 Apr 2018 20:44:18 +0900 hgweb: wrap {nextentry} of graph with mappinglist
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:44:18 +0900] rev 38220
hgweb: wrap {nextentry} of graph with mappinglist It's a 0/1-length list of a mapping.
Fri, 01 Jun 2018 23:02:36 +0900 setup: write version constant as bytes literal
Yuya Nishihara <yuya@tcha.org> [Fri, 01 Jun 2018 23:02:36 +0900] rev 38219
setup: write version constant as bytes literal Spotted while bulk-rewriting string literals to b''s.
Thu, 31 May 2018 18:53:28 +0800 spartan: don't show '[up]' in file view when in root directory already
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 May 2018 18:53:28 +0800] rev 38218
spartan: don't show '[up]' in file view when in root directory already
Thu, 31 May 2018 18:39:35 +0800 monoblue: don't show '[up]' in file view when in root directory already
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 May 2018 18:39:35 +0800] rev 38217
monoblue: don't show '[up]' in file view when in root directory already
Thu, 31 May 2018 18:33:49 +0800 gitweb: don't show '[up]' in file view when in root directory already
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 May 2018 18:33:49 +0800] rev 38216
gitweb: don't show '[up]' in file view when in root directory already
Thu, 31 May 2018 18:01:54 +0800 paper: don't show '[up]' in file view when in root directory already
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 May 2018 18:01:54 +0800] rev 38215
paper: don't show '[up]' in file view when in root directory already
Thu, 31 May 2018 16:52:02 +0800 spartan: add missing closing tags
Anton Shestakov <av6@dwimlabs.net> [Thu, 31 May 2018 16:52:02 +0800] rev 38214
spartan: add missing closing tags Browsers apparently don't care about this, but let's fix it for humans.
Fri, 20 Apr 2018 15:21:03 +0200 templatefilters: add commonprefix
Joerg Sonnenberger <joerg@bec.de> [Fri, 20 Apr 2018 15:21:03 +0200] rev 38213
templatefilters: add commonprefix The commonprefix filter takes a list of files names like files() and returns the longest directory name common to all elements. Differential Revision: https://phab.mercurial-scm.org/D3439
Sun, 20 May 2018 19:07:51 +0530 py3: add 3 new passing tests to whitelist
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 19:07:51 +0530] rev 38212
py3: add 3 new passing tests to whitelist We ave crossed the 500 mark! Differential Revision: https://phab.mercurial-scm.org/D3638
Thu, 24 May 2018 09:56:28 +0000 serve: add option print-url
Nicola Spanti <nicola.spanti@logilab.fr> [Thu, 24 May 2018 09:56:28 +0000] rev 38211
serve: add option print-url It can be used to open hgweb in a web browser. Example : xdg-open "`hg serve --print-url`". Differential Revision: https://phab.mercurial-scm.org/D3649
Sat, 26 May 2018 11:33:02 +0900 revlog: disallow setting uncompressed length to None
Yuya Nishihara <yuya@tcha.org> [Sat, 26 May 2018 11:33:02 +0900] rev 38210
revlog: disallow setting uncompressed length to None Backed out changeset a4942675de6b
Sat, 26 May 2018 11:31:51 +0900 unionrepo: fill in uncompressed length of revlog entry
Yuya Nishihara <yuya@tcha.org> [Sat, 26 May 2018 11:31:51 +0900] rev 38209
unionrepo: fill in uncompressed length of revlog entry It can be either -1 or a valid length, but shouldn't be None. IIUC, we can simply trust the length retrieved from the revlog to be overlaid. I don't bother thinking whether the compressed length can be copied as well. We'll need to fix it later.
Sun, 29 Apr 2018 19:48:16 -0400 fuzz: add clean target
Augie Fackler <augie@google.com> [Sun, 29 Apr 2018 19:48:16 -0400] rev 38208
fuzz: add clean target Differential Revision: https://phab.mercurial-scm.org/D3677
Mon, 30 Apr 2018 22:02:07 -0400 fuzzutil: make it possible to use absl when C++17 isn't supported
Augie Fackler <augie@google.com> [Mon, 30 Apr 2018 22:02:07 -0400] rev 38207
fuzzutil: make it possible to use absl when C++17 isn't supported Differential Revision: https://phab.mercurial-scm.org/D3676
Sat, 28 Apr 2018 22:18:50 -0400 fuzz: extract some common utilities and use modern C++ idioms
Augie Fackler <augie@google.com> [Sat, 28 Apr 2018 22:18:50 -0400] rev 38206
fuzz: extract some common utilities and use modern C++ idioms Alex Gaynor suggested we should probably copy the left and right sides of diffs to new blocks so we can detect over-reads in the diffing code, and I agree. Once I got into that, I realized we should do things with C++17 idioms rather than keep using malloc() and free(). This change is the result. I tried to split it more than this and failed. Everything still compiles and works in the oss-fuzz container, so I think we can count on C++17 being available! Differential Revision: https://phab.mercurial-scm.org/D3675
Sat, 28 Apr 2018 22:13:33 -0400 tests: update fuzzer tests to include both fuzzers
Augie Fackler <augie@google.com> [Sat, 28 Apr 2018 22:13:33 -0400] rev 38205
tests: update fuzzer tests to include both fuzzers Differential Revision: https://phab.mercurial-scm.org/D3674
Thu, 24 May 2018 12:19:50 +0200 transaction-summary: show phase changes statistics in pull/unbundle
Denis Laxalde <denis.laxalde@logilab.fr> [Thu, 24 May 2018 12:19:50 +0200] rev 38204
transaction-summary: show phase changes statistics in pull/unbundle Upon pull or unbundle, we display a message with the number of changesets which phase became public. Noticeably, this new message would appear even if no new changeset were added (below the "no changes found" message), thus indicating that something actually happened to the local repository.
Mon, 28 May 2018 01:36:34 -0400 outgoing: pay attention to `default:pushurl` for bookmarks and subrepos
Matt Harbison <matt_harbison@yahoo.com> [Mon, 28 May 2018 01:36:34 -0400] rev 38203
outgoing: pay attention to `default:pushurl` for bookmarks and subrepos The problem here was that `default:pushurl` and `default` get translated to a single entry in `ui.paths` named 'default', with an attribute for 'pushloc', 'loc', and 'rawloc'. ui.expandpath() then always takes the `rawloc` attribute. Maybe the ui.expandpath() API is busted and should be removed? Or maybe getpath() should return a copy that adds an attribute reflecting the URL of the path chosen? I thought that I could remove the code in hg._outgoing() and pass the location resolved in commands.py as `dest`, but unfortunately that code is needed there to resolve #branch type URLs. Maybe that should be pulled up to commands.py, because I can't see any reasonable behavior for a subrepo path that's constructed out of that type of URL. The push command already resolves this early, so that works properly. But it looks like bundle, histedit, largefiles, patchbomb, and summary use a similar pattern, so they are likely similarly affected.
Sat, 21 Apr 2018 17:27:57 +0200 revlog: make chainbase cache its result for the correct revision
Paul Morelle <paul.morelle@octobus.net> [Sat, 21 Apr 2018 17:27:57 +0200] rev 38202
revlog: make chainbase cache its result for the correct revision Previously, as 'rev' was our iterator, we were always caching the chain base for the second revision of the chain, or for the base itself.
Wed, 07 Mar 2018 11:10:22 +0100 revlog: make getcandidaterevs more consistent about updating tested revs set
Paul Morelle <paul.morelle@octobus.net> [Wed, 07 Mar 2018 11:10:22 +0100] rev 38201
revlog: make getcandidaterevs more consistent about updating tested revs set Like in previous cases, update the set of tested revisions after yielding
Mon, 26 Mar 2018 10:49:01 -0700 templatekw: make getrenamed() return only filename, not nodeid
Martin von Zweigbergk <martinvonz@google.com> [Mon, 26 Mar 2018 10:49:01 -0700] rev 38200
templatekw: make getrenamed() return only filename, not nodeid No callers cared about the nodeid and I want to make getrenamed() not look up the node (although it's currently free, I hope to store copy info in changesets and not include the nodeid). Differential Revision: https://phab.mercurial-scm.org/D3666
Sat, 26 May 2018 12:38:07 +0900 py3: wrap tempfile.NamedTemporaryFile() to return bytes fp.name
Yuya Nishihara <yuya@tcha.org> [Sat, 26 May 2018 12:38:07 +0900] rev 38199
py3: wrap tempfile.NamedTemporaryFile() to return bytes fp.name Unlike its name, tempfile.NamedTemporaryFile is not a class, so I renamed the pycompat version to look like a plain function. Since temp.name uses in the infinitepush extension aren't bytes-safe, this patch leaves them unmodified. Another weird thing is tempfile.mktemp(), which does not accept bytes suffix nor prefix. Sigh.
Sat, 26 May 2018 12:20:36 +0900 py3: wrap tempfile.mkdtemp() to use bytes path
Yuya Nishihara <yuya@tcha.org> [Sat, 26 May 2018 12:20:36 +0900] rev 38198
py3: wrap tempfile.mkdtemp() to use bytes path This also flips the default to use a bytes path on Python 3.
Sat, 26 May 2018 12:14:04 +0900 py3: wrap tempfile.mkstemp() to use bytes path
Yuya Nishihara <yuya@tcha.org> [Sat, 26 May 2018 12:14:04 +0900] rev 38197
py3: wrap tempfile.mkstemp() to use bytes path This patch just flips the default to use a bytes path on Python 3. ca1cf9b3cce7 is backed out as the bundlepath should be bytes now.
Thu, 03 May 2018 18:39:58 +0900 extensions: remove strip_init=True from _disabledpaths()
Yuya Nishihara <yuya@tcha.org> [Thu, 03 May 2018 18:39:58 +0900] rev 38196
extensions: remove strip_init=True from _disabledpaths() It's no longer used.
Thu, 03 May 2018 18:38:02 +0900 extensions: peek command table of disabled extensions without importing
Yuya Nishihara <yuya@tcha.org> [Thu, 03 May 2018 18:38:02 +0900] rev 38195
extensions: peek command table of disabled extensions without importing With chg where demandimport disabled, and if disk cache not warm, it took more than 5 seconds to get "unknown command" error when you typo a command name. This is horrible UX. The new implementation is less accurate than the original one as Python can do anything at import time and cmdtable may be imported from another module, but I think it's good enough. Note that the new implementation has to parse .py files, which is slightly slower than executing .pyc if demandimport is enabled.
Thu, 26 Apr 2018 23:00:19 -0400 lfs: clarify pointer validation error messages
Matt Harbison <matt_harbison@yahoo.com> [Thu, 26 Apr 2018 23:00:19 -0400] rev 38194
lfs: clarify pointer validation error messages It wasn't obvious that LFS was involved from the error messages when `hg verify` fails.
Tue, 22 May 2018 23:22:15 -0400 terse: pconvert() entries added to the temporary terse dict for Windows
Matt Harbison <matt_harbison@yahoo.com> [Tue, 22 May 2018 23:22:15 -0400] rev 38193
terse: pconvert() entries added to the temporary terse dict for Windows Recent additional testing revealed this problem on Windows: --- tests/test-status.t.err +++ tests/test-status.t.err @@ -109,7 +109,7 @@ tweaking defaults works $ hg status --cwd a --config ui.tweakdefaults=yes - ? . + ? ../a/ ? ../b/ ? ../in_root $ HGPLAIN=1 hg status --cwd a --config ui.tweakdefaults=yes @@ -120,7 +120,7 @@ ? b/in_b (glob) ? in_root $ HGPLAINEXCEPT=tweakdefaults hg status --cwd a --config ui.tweakdefaults=yes - ? . + ? ..\a\ ? ../b/ ? ../in_root (glob) AFAICT, the status list (input and output here) is always in '/' format. The '\' printed output on Windows is because each file is run through repo.pathto() -> dirstate.pathto() -> util.pathto(). (And that function states that the argument uses '/' separators.) I fixed a similar issue in 362096cfdb1f, and given the apparent need for these strings to be in '/' format, I wonder if cmdutil.dirnode() should be rewritten to avoid os.path.join(). But it looks like all entries added to the temporary terse dict should use '/' now, and cmdutil.tersedir() looks like the only user.
Thu, 24 May 2018 15:56:47 -0600 filemerge: don't pass function name as loadpath's module_name param
hindlemail <tom_hindle@sil.org> [Thu, 24 May 2018 15:56:47 -0600] rev 38192
filemerge: don't pass function name as loadpath's module_name param
Tue, 22 May 2018 18:10:37 +0200 phases: define an official tuple of phases we do not share
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 18:10:37 +0200] rev 38191
phases: define an official tuple of phases we do not share Same motivation as for `mutablephases`, having a single definition helps with updating phases logic.
Tue, 22 May 2018 18:10:00 +0200 phases: define an official tuple of mutable phases
Boris Feld <boris.feld@octobus.net> [Tue, 22 May 2018 18:10:00 +0200] rev 38190
phases: define an official tuple of mutable phases Such tuple was already manually defined in a couple of place. Having an official definition makes it easy to introduce of new phases.
Mon, 21 May 2018 17:33:50 +0200 repoview: use 'phasecache.getrevset' when computing 'unserved' filter
Boris Feld <boris.feld@octobus.net> [Mon, 21 May 2018 17:33:50 +0200] rev 38189
repoview: use 'phasecache.getrevset' when computing 'unserved' filter This reuses a precomputed set, being much faster than manual iteration. Computing the "unserved" filter speed up by 55%. before: wall 0.014671 comb 0.020000 user 0.020000 sys 0.000000 (best of 180) after: wall 0.006623 comb 0.010000 user 0.010000 sys 0.000000 (best of 401) The "unserved" filter is used to restrict the revisions client can pull from a server. (eg: secret changesets)
Sat, 26 May 2018 02:11:09 +0530 graft: drop --user and --date values info from hint in case of conflicts
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 26 May 2018 02:11:09 +0530] rev 38188
graft: drop --user and --date values info from hint in case of conflicts After previous patch, we have started preserving user and date values in graftstate and reusing them during `hg graft --continue`. Now passing --user and --date again with --continue makes no sense. Let's drop them from the hint. Differential Revision: https://phab.mercurial-scm.org/D3660
Fri, 25 May 2018 17:21:01 +0530 graft: reuse --user and --date values in `hg graft --continue` (BC)
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 17:21:01 +0530] rev 38187
graft: reuse --user and --date values in `hg graft --continue` (BC) Reading the user and date information from graftstate during `hg graft --continue` will help us in preserving the user and date arguments passed when `hg graft` was called. This patch reads that information and reuses that while running `hg graft --continue`. So after this patch, --user and --date values are preserved even if conflicts occur and user don't need to pass them again. The test changes demonstrate the fix. This is a backward incompatible change but I think of this more as a bug fix. Also thinking about removing the line from `hg help graft` which says --continue does not reapply other flags but need to check what are the other flags which needs to be preserved. Differential Revision: https://phab.mercurial-scm.org/D3659
Sat, 26 May 2018 01:52:42 +0530 tests: add test showing --continue not preserving --date and --user flags
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 26 May 2018 01:52:42 +0530] rev 38186
tests: add test showing --continue not preserving --date and --user flags This patch adds test showing that we don't preserve the user passed --date and --user values in `hg graft`. I was fixing that and realized this is untested. Adding tests before so that behavior change or the fix is easy to realize. Differential Revision: https://phab.mercurial-scm.org/D3658
Fri, 25 May 2018 16:14:15 +0530 graft: store user passed date and user information in graftstate
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 16:14:15 +0530] rev 38185
graft: store user passed date and user information in graftstate Right now, `hg help graft` says: The -c/--continue option does not reapply earlier options, except for --force. which should be treated as a bug. A good user experience is that the commands remember the arguments passed initially and preserve them during `hg graft --continue`. This patch starts storing the user and date information in graftstate if user passed it. Upcoming patches will make sure we preserve that information during --continue and them don't allow user to pass any new arguments with --continue. I don't think there is any another `--continue` flag which allows new options to be passed with it. Differential Revision: https://phab.mercurial-scm.org/D3657
Fri, 25 May 2018 16:00:37 +0530 graft: use cmdstate.delete() to delete the state file
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 16:00:37 +0530] rev 38184
graft: use cmdstate.delete() to delete the state file Previous patches start using state.cmdstate() class for statefiles. The class has a function delete() to delete the state file. This patch replaces the existing repo.vfs.unlink() with that delete() function. Differential Revision: https://phab.mercurial-scm.org/D3656
Thu, 24 May 2018 23:05:12 -0700 graph: add outputgraph() function, called by ascii() to print
John Stiles <johnstiles@gmail.com> [Thu, 24 May 2018 23:05:12 -0700] rev 38183
graph: add outputgraph() function, called by ascii() to print the graph to the ui. This allows a cleaner entrypoint for extensions to tweak the graph output without needing to rewrite all of ascii(), or needing to manually guess where the graph nodes/edges end and the rev note portion begins. This patch does not affect graph output or behavior in any way. Differential Revision: https://phab.mercurial-scm.org/D3655
Wed, 28 Feb 2018 03:07:48 +0530 graft: add test for reading old graftstate files with new mechanism
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 28 Feb 2018 03:07:48 +0530] rev 38182
graft: add test for reading old graftstate files with new mechanism This tests the reading of old graftstate file using the new logic. The tests shows that if user is in middle of a graft and then updates their mercurial to the version where we have new graftstate format, we can still read the old graft state format files correctly. Differential Revision: https://phab.mercurial-scm.org/D2597
Fri, 25 May 2018 01:53:30 +0530 graft: start using the cmdstate class to read and write data to graftstate
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 01:53:30 +0530] rev 38181
graft: start using the cmdstate class to read and write data to graftstate This patch replaces the logic to read and write data to graftstate file to use the state.cmdstate() class. The previous graftstate format didn't had any version number on top of that, so we have to catch the CorruptedState error and then read the graftstate in case of old state files. This will help us to implement nice additions to graft commands like `--no-commit`, `--abort`, `--stop` flags. Passing on test-graft.t shows that things are working fine. Differential Revision: https://phab.mercurial-scm.org/D3654
Fri, 25 May 2018 01:25:31 +0530 graft: use state.cmdstate() to check whether graftstate exists
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 01:25:31 +0530] rev 38180
graft: use state.cmdstate() to check whether graftstate exists This is a step towards make graft use the new state.cmdstate() class. This patch replaces the ugly try-except with nice if-else conditionals. Differential Revision: https://phab.mercurial-scm.org/D3652
Fri, 25 May 2018 01:15:30 +0530 graft: factor out function to read graft state in separate function
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 01:15:30 +0530] rev 38179
graft: factor out function to read graft state in separate function Fatcoring out the logic in a separate function will help us in adding conditional logic for different versions of graft state files. Differential Revision: https://phab.mercurial-scm.org/D3651
Fri, 25 May 2018 01:46:06 +0530 state: removing remaining instances of opts class variable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 01:46:06 +0530] rev 38178
state: removing remaining instances of opts class variable The cmdstate class used to have a class variable opts which used to be a dict which stored all the data for the state. Recent cleanups removed the use of that variable. There were couple of instances left which are removed by this patch. Differential Revision: https://phab.mercurial-scm.org/D3653
Thu, 24 May 2018 23:26:28 +0900 help: mention pattern syntax of latesttag() template function
Yuya Nishihara <yuya@tcha.org> [Thu, 24 May 2018 23:26:28 +0900] rev 38177
help: mention pattern syntax of latesttag() template function
Wed, 23 May 2018 22:25:00 -0400 py3: replace str.format(x) with `str % x` in githelp
Matt Harbison <matt_harbison@yahoo.com> [Wed, 23 May 2018 22:25:00 -0400] rev 38176
py3: replace str.format(x) with `str % x` in githelp
Wed, 23 May 2018 22:17:04 -0400 githelp: drop the trailing period from single sentence output for consistency
Matt Harbison <matt_harbison@yahoo.com> [Wed, 23 May 2018 22:17:04 -0400] rev 38175
githelp: drop the trailing period from single sentence output for consistency There are several instances of multiple sentence output, which I left alone. That is already nonstandard style, so dropping the period doesn't seem like an improvement.
Wed, 04 Apr 2018 20:37:52 +0900 hgweb: wrap {entries}* of filelog with mappinglist
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:37:52 +0900] rev 38174
hgweb: wrap {entries}* of filelog with mappinglist They were lists of mappings.
Wed, 04 Apr 2018 20:37:03 +0900 hgweb: don't use dict(key=value) to build a mapping dict in filelog
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:37:03 +0900] rev 38173
hgweb: don't use dict(key=value) to build a mapping dict in filelog It wasn't Py3 compatible because mapping keys must be bytes.
Wed, 04 Apr 2018 20:31:16 +0900 hgweb: wrap {diffopts} of annotate by hybriddict()
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:31:16 +0900] rev 38172
hgweb: wrap {diffopts} of annotate by hybriddict() The diffopts here is a plain dict, which should be wrapped by hybriddict.
Wed, 04 Apr 2018 20:29:58 +0900 hgweb: wrap {parents} of {annotate} with mappinggenerator
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:29:58 +0900] rev 38171
hgweb: wrap {parents} of {annotate} with mappinggenerator It's a generator of at most two mappings, which has to be wrapped.
(0) -30000 -10000 -3000 -1000 -300 -100 -96 +96 +100 +300 +1000 +3000 +10000 tip