The commits listed in the multiple heads message are bogus
Pushing a multi head topic correctly aborts the push, but the commits listed in the commit don't exist (obsolete or otherwise). E.g.
hg push -r . -f pushing to https://foss.heptapod.net/octobus/mercurial-devel searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: rejecting multiple heads on branch "stable:windows-test-fixes" remote: (2 heads: 393464663030 383666343239) abort: push failed on remote
I tried reproducing this with
hg serve, but it yields the correct heads (and has additional output about rolling back the transaction)
$ hg push -r 86f429194d86 http://127.0.0.1:8000 -f --config experimental.enforce-single-head=yes pushing to http://127.0.0.1:8000/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: transaction abort! remote: rollback completed remote: 2 heads on "stable:windows-test-fixes" remote: (2487058ae888, 86f429194d86) abort: push failed on remote
Steps to reproduce
Create a linear topic, and push to heptapod. Then rebase the tip into the middle of the topic (I was trying to remove some broken commits without pruning them) and push the new head.
What is the current bug behavior?
The commits listed as heads don't exist.
What is the expected correct behavior?
The commits listed should exist, at least in the local repo.
I wonder if these are git hashes, though IDK how that would happen given that the code is all in hg or the evolve extension and both the hg tests and evolve tests have instances of this working.