test-evolve: extend output and exhibit an amend bug
The extended section shows the parent revision stabilizing itself on
another revision, without --any. In theory, only descendants of the
parent predecessors or of its descendants should be stabilized, and be
stabilized in parent subtree. Unfortunately, stabilize implementation
correctly picks the changesets to stabilize but not their target.
This problem is aggravated by amend registering too many obsolete
markers which prevents the stabilize selection heuristic to prune
several changesets.
#!/bin/sh
here=`python -c "import os; print os.path.realpath('$0')"`
repo_root=`dirname "$here"`
if !( hg --version -q | grep -qe 'version 2\.[1-9]' ); then
echo 'You need mercurial 2.1 or later' >&2
exit 2
fi
cat << EOF >&2
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXX Add lines below to the [extensions] section of you hgrc XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOF
cat << EOF | sed -e "s#XXXREPOPATHXXX#${repo_root}#"
[extensions]
### experimental extensions for history rewriting
# obsolete relation support (will move in core)
obsolete=XXXREPOPATHXXX/hgext/obsolete.py
# history rewriting UI
# needed by evolve
hgext.rebase=
evolve=XXXREPOPATHXXX/hgext/evolve.py
[alias]
### useful alias to check future amend result
# equivalent to the qdiff command for mq
# diff
pdiff=diff --rev .^
# status
pstatus=status --rev .^
# diff with the previous amend
odiff=diff --rev 'limit(obsparents(.),1)' --rev .
EOF
cat << EOF >&2
### check qsync-enable.sh if your need mq export too.
EOF