scmutil: move construction of instability count message to separate fn
When the commad we are running, introduces new instabilities, we show a message
like `5 new orphan changesets`, `2 new content-divergent changesets`, `1 new
phase-divergent changesets` etc which is very nice.
Now taking a step ahead, we want users to show how to fix them too. Something
like:
`5 new orphan changesets (run 'hg evolve' to resolve/stabilize them)`
`2 new content-divergent changesets (run 'hg evolve --content-divergent' to
resolve them)`
and maybe telling user a way to understand more about those new instabilities
like `hg evolve --list` or `hg log -r 'orphan()'` something like that.
The idea came from
issue5855 which I want to fix because fixing that will result
in a nice UI.
Taking the construction logic out will allow extensions like evolve (maybe
rebase too) to wrap that and add information about how to resolve and how to
understand the instability more.
Differential Revision: https://phab.mercurial-scm.org/D3734
procutil: use unbuffered stdout on Windows
Windows doesn't support line buffering, treating it as fully buffered. This
causes output of slow commands to stutter. We use unbuffered instead.
procutil: use unbuffered stdout on Windows
Windows doesn't support line buffering, treating it as fully buffered. This
causes output of slow commands to stutter. We use unbuffered instead.
graft: introduce --abort flag to abort interrupted graft
This patch introduces a new --abort flag to `hg graft` command which aborts an
interrupted graft and rollbacks to the state before graft.
The behavior when some of grafted changeset get's published while interrupted
graft or we have new descendants on grafted changesets is same as that of rebase
which is warn the user, don't strip and abort the abort the graft.
Tests are added for the new flag.
.. feature::
`hg graft` now has a `--abort` flag which aborts the interrupted graft and
rollbacks to state before the graft.
Differential Revision: https://phab.mercurial-scm.org/D3754
graft: move `if continue` to elif and add new line
This will make upcoming patch where we introduce a new elif for the abort case
more readable. Also added a new line before the if-else starts.
Differential Revision: https://phab.mercurial-scm.org/D3752
graft: start storing new nodes formed in graftstate
This patch starts storing the new nodes formed during the ongoing graft
operation in the graftstate. We need the list of new nodes formed while
implmenting `graft --abort` which will strip out the new nodes.
Differential Revision: https://phab.mercurial-scm.org/D3751
show: use filter() function to strip "tip" tag
Before, an empty tag "" was inserted in place of "tip", resulting in double
spaces.
templater: extend filter() to accept template expression for emptiness test
This utilizes the pass-by-name nature of template arguments.
templater: introduce filter() function to remove empty items from list
The primary use case is to filter out "tip" from a list of tags.
templater: fix truth testing of integer 0 taken from a list/dict
Broken at
f9c426385853. bool(python_value) shouldn't be used here since
an integer 0 has to be truthy for backward compatibility.