Pushing obsolescence markers
Xavier Zwirtz
me at xavierzwirtz.com
Sat Jul 9 19:51:12 UTC 2016
In my experiments, hg push does as expected in almost all cases, ie it pushes obsolescence markers. It will not do that though, if the remote contains a a change to branch foo that client has marked obsolete, and you are trying to push a new branch at the same time. It does not detect that at the end of the transaction there will not be two heads.
I created a powershell script that reproduces the situation:
hg init client
hg init server
"[phases]`npublish = false" | sc .\server\.hg\hgrc
cd client
echo 'hello world' > file.txt
hg add .\file.txt
hg commit -m first
echo 'hello world mod' > file.txt
hg commit -m second
hg branch foo
echo 'hello world foo first' > file.txt
hg commit -m "foo first"
hg push ../server
hg update 1
hg branch foo --force
echo 'hello world foo second' > file.txt
hg commit -m "foo second"
hg prune 2
hg push ../server
Apologies for receiving two emails Faheem, I am new to mailing lists.
On 7/9/2016 2:19:33 PM, Faheem Mitha <faheem at faheem.info> wrote:
On Sat, 9 Jul 2016, Xavier Zwirtz wrote:
> I am attempting to push changes that were rebased to a local mercurial
> repository. I get an error about duplicate heads though, unless I run
> `hg push --hidden`. I would expect mercurial to automatically
> push obsolescence markers, even without the --hidden flag.
Can you provide a test script?
Regards, Faheem Mitha
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-evolve-testers/attachments/20160709/d6562d7b/attachment-0002.html>
More information about the Evolve-testers
mailing list