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
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
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
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
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
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
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
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
Yuya Nishihara <yuya@tcha.org> [Thu, 24 May 2018 23:26:28 +0900] rev 38177
help: mention pattern syntax of latesttag() template function
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
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.
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.
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.
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.
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.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:28:51 +0900] rev 38170
hgweb: wrap {annotate} with mappinggenerator
No bare generator of mappings should be put in a template mapping.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:24:04 +0900] rev 38169
hgweb: wrap {bookmarks} of summary with mappinggenerator
No bare generator of mappings should be put in a template mapping.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:21:29 +0900] rev 38168
hgweb: wrap {lastchange} of bookmarks with mappinglist
It was an 1-length list of a mapping, can be wrapped with a mappinglist.
Yuya Nishihara <yuya@tcha.org> [Wed, 04 Apr 2018 20:19:51 +0900] rev 38167
hgweb: wrap {entries}* of bookmarks with mappinggenerator
They were functions returning a generator of mappings. The laziness is
handled by the mappinggenerator class.
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 23 May 2018 03:13:04 +0530] rev 38166
state: raise CorruptedState error isntead of ProgrammingError
There are old state files which don't have a version number in top of them and
hence we have to read them to check whether they are good or not.
ProgrammingError is not apt for this case. Thanks to Yuya for suggesting
CorruptedState error.
Differential Revision: https://phab.mercurial-scm.org/D3644
Kyle Lippincott <spectral@google.com> [Tue, 22 May 2018 11:20:55 -0700] rev 38165
localrepo: add docstring to _makedirstate to make it less likely to be removed
Differential Revision: https://phab.mercurial-scm.org/D3643
David Demelier <markand@malikania.fr> [Tue, 15 May 2018 14:35:41 +0200] rev 38164
scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
Matt Harbison <matt_harbison@yahoo.com> [Tue, 22 May 2018 23:48:08 -0400] rev 38163
githelp: cleanup one more abort message
This makes the string localizable, uses the more standard hint argument, quotes
the problem option so it stands out, and kills a stray apostrophe.
Yuya Nishihara <yuya@tcha.org> [Tue, 22 May 2018 20:43:42 +0900] rev 38162
githelp: do not concatenate i18n messages dynamically so they can be collected
Kyle Lippincott <spectral@google.com> [Wed, 16 May 2018 14:59:32 -0700] rev 38161
narrow: only wrap dirstate functions once, instead of per-reposetup
chg will call reposetup multiple times, and we would end up double-wrapping (or
worse) the dirstate functions; this can cause issues like OSError 'No such file
or directory' during rebase operations, when we go to double-delete our
narrowspec backup file.
Differential Revision: https://phab.mercurial-scm.org/D3559
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 00:25:18 +0530] rev 38160
state: temporary silence pyflakes warning by removing variable assignment
The variable 'version' is going to be used in upcoming series where we will be
using the version number to read a certain state file. However currently,
pyflakes fails because of the variable not being used. Let's remove the
assignment temporarily so that buildbots and test-suite is happy until I iterate
over remaining part of the series.
Differential Revision: https://phab.mercurial-scm.org/D3641
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 22 May 2018 00:22:23 +0530] rev 38159
state: fix usage of an unassigned variable
The variable iv was used in earlier iterations of the patches and was dropped
since we made sure 'version' is always int. This usage of 'iv' should have been
replaced by 'version' in the original patch only.
Differential Revision: https://phab.mercurial-scm.org/D3640
Pulkit Goyal <7895pulkit@gmail.com> [Sun, 20 May 2018 18:53:03 +0530] rev 38158
py3: add b'' prefixes in tests/test-revset2.t
# skip-blame because just b'' prefixes
Differential Revision: https://phab.mercurial-scm.org/D3637