Fix hg push and hg push -r sometimes creating new heads without --force.
Fixing issue179.
The algorithm checks if there not more new heads on the remote side than heads
which become non-heads due to getting children.
Pushing this repo:
m
/\
3 3a|
|/ /
2 2a
|/
1
to a repo only having 1, 2 and 3 didn't abort requiring --force before.
Added test cases for this and some doc strings for used methods.
# creating 'remote'
# clone remote
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
# verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 1 changesets, 1 total revisions
# empty default pull
default = ssh://user@dummy/remote
pulling from ssh://user@dummy/remote
searching for changes
no changes found
# local change
# updating rc
# find outgoing
searching for changes
changeset: 1:c54836a570be
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: add
# find incoming on the remote side
searching for changes
changeset: 1:c54836a570be
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: add
# push
pushing to ssh://user@dummy/remote
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
# check remote tip
changeset: 1:c54836a570be
tag: tip
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: add
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
1 files, 2 changesets, 2 total revisions
bleah
Got arguments 1:user@dummy 2:hg -R remote serve --stdio 3: 4: 5:
Got arguments 1:user@dummy 2:hg -R remote serve --stdio 3: 4: 5:
Got arguments 1:user@dummy 2:hg -R remote serve --stdio 3: 4: 5:
Got arguments 1:user@dummy 2:hg -R local serve --stdio 3: 4: 5:
Got arguments 1:user@dummy 2:hg -R remote serve --stdio 3: 4: 5: