transaction: remove the 'onabort' mechanism
It has no known users. If someones needs similar functionality, a new 'addabort'
method similar to 'addfinalize' should be added.
transaction: remove the redundant 'onclose' mechanism
It is superseded by the 'addfinalize' function and all its user have been
migrated.
fncache: document the fact fncache is outdate at hook run time
Using 'addfinalize' to generate 'fncache' means that no pending version of the
file will be generated for the hooks. We would have to use the
'addfilegenerator' method to get such result. However the 'fncachevfs' (who
decide that a write is necessary) have no access to the transaction to register
such file generation at add time. Having the transaction accessible to the 'vfs'
is too much trouble for no benefit. This outdated 'fncache' file at hook time is
not expected to be an issue.
The previous move from 'onclose' to 'addfinalize' had no impact on this timing.
I'm documenting it now because I looked at it.
fncache: drop dedicated 'onclose' function in favor of 'tr.addfinalize'
Now that we have a shiny generic mechanism, we can use it.
graft: drop cset description from empty commit message
This is either already redundant in the output or too verbose in quiet
mode.
graft: show hashes in user-facing messages
Graft was in various places just showing the revision number in status
messges. Instead, also show the stable and more useful short hash.
graft: give helpful warning for empty grafts
It was just showing a status message with the internal revision number.
Instead, show a warning like
note: graft of 27:
3aaa8b6725f0 "28" created no changes to commit
(message tweaked in-flight by mpm)
graft: show more useful status information while grafting
Show status messages with first line of commit description and names, like
grafting 12:
2647734878ef "fork" (tip)
This gives more context for the user when resolving conflicts.
tests: test coverage for empty graft
A future change will add a warning to the quiet rebase.