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
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
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
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
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
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
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
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
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
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