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.
invoking hg diff --nodates --change 1:
diff -r 4bb65dda5db4 -r e9b286083166 file.txt
--- a/file.txt
+++ b/file.txt
@@ -1,1 +1,1 @@
-first
+second
invoking hg diff --nodates --change e9b286083166:
diff -r 4bb65dda5db4 -r e9b286083166 file.txt
--- a/file.txt
+++ b/file.txt
@@ -1,1 +1,1 @@
-first
+second
invoking hg diff --nodates --change 6:
diff -r e8a0797e73a6 -r aa9873050139 file.txt
--- a/file.txt
+++ b/file.txt
@@ -6,6 +6,6 @@
5
6
7
-8
+y
9
10
EOF