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 38169
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 38168
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 38167
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 38166
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 38165
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 38164
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 38163
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 38162
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 38161
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 38160
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 38159
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 38158
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 38157
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 38156
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 38155
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 38154
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 38153
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 38152
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 38151
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 38150
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 38149
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 38148
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 38147
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 38146
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 38145
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 38144
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 38143
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 38142
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 38141
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 38140
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.
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip