rank: compute property incrementally
This replaces the naive rank computation with a more efficient incremental
method, avoiding computing the whole ancestor set when possible.
Differential Revision: https://phab.mercurial-scm.org/D12143
#require black test-repo
Black needs the real USERPROFILE in order to run on Windows
#if msys
$ USERPROFILE="$REALUSERPROFILE"
$ export USERPROFILE
#endif
$ cd $RUNTESTDIR/..
$ black --check --diff `hg files 'set:(**.py + grep("^#!.*python")) - mercurial/thirdparty/**'`