localrepo: refactor prepush logic
Simplifies the prepush check logic and makes it a lot more direct and
comprehensible. Instead of comparing the total local vs. remote head count, it
compares the number of new vs. removed heads.
#!/bin/sh
"$TESTDIR/hghave" no-outer-repo || exit 80
echo % no repo
hg id
echo % create repo
hg init test
cd test
echo a > a
hg ci -Ama
echo % basic id usage
hg id
hg id --debug
hg id -q
hg id -v
echo % with options
hg id -r.
hg id -n
hg id -t
hg id -b
hg id -i
hg id -n -t -b -i
echo % with modifications
echo b > a
hg id -n -t -b -i
echo % other local repo
cd ..
hg -R test id
hg id test
echo % with remote http repo
cd test
hg serve -p $HGPORT1 -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
hg id http://localhost:$HGPORT1/
echo % remote with tags?
hg id -t http://localhost:$HGPORT1/
true # ends with util.Abort -> returns 255