hooklib: fix detection of successors for changeset_obsoleted
Provide a hook for obsutil.getobsolete to be used with either a
transaction or the changes item of the transaction, since hooks only
have access to the latter. Use that to find the correct list of
revisions with obsmarkers, even new ones, and then filter out revisions
with known successors.
Move the processing from pretxnclose to txnclose as the transaction
access itself is no longer necessary. This is more in line with notify
and ensures that sanity checks can abort the transaction first.
Differential Revision: https://phab.mercurial-scm.org/D8575
#require rust
$ rhg() {
> if [ -f "$RUNTESTDIR/../rust/target/debug/rhg" ]; then
> "$RUNTESTDIR/../rust/target/debug/rhg" "$@"
> else
> echo "skipped: Cannot find rhg. Try to run cargo build in rust/rhg."
> exit 80
> fi
> }
$ rhg unimplemented-command
[252]
$ rhg root
abort: no repository found in '$TESTTMP' (.hg not found)!
[255]
$ hg init repository
$ cd repository
$ rhg root
$TESTTMP/repository
$ rhg root > /dev/full
abort: No space left on device (os error 28)
[255]
$ rm -rf `pwd`
$ rhg root
abort: error getting current working directory: $ENOENT$
[255]