Pushing creates additional heads without --force on old repos in 1.3

Kastner Masilko, Friedrich Kastner_Masilko at FESTO.AT
Fri Jul 10 10:01:38 CDT 2009


Hy there,

since this is my first posting here, please let me first thank Matt Mackall and the crew for this wonderful piece of software. It really changed the way I manage projects these days...

Now for the problem I've got with 1.3... we use Mercurial since version 9.x for our projects at work and follow a rather SVN-like workflow. There is a "central" repo on a server everyone is pulling from / pushing to. We try to keep a linear DAG by using rebase. Normally one would try to push, and if this fails he rebase and tries to push again. Up to 1.2 this worked great, especially since we are only teams of 3-4 concurrent developers on a repository.

Unfortunately, with 1.3 clients this does not work with the old repo anymore. Mercurial writes out a note about unsynced changes, but continues to push the new head. Something like this happens if I try to push a new changeset to the server while there are new changesets from another user:
S:\Festo\Packages\FCT\PlugIns\CMXX>hg push http://satu0010.at.festo.net/hg/repos/cmxx2 --debug -v
using http://satu0010.at.festo.net/hg/repos/cmxx2
sending between command
pushing to http://satu0010.at.festo.net/hg/repos/cmxx2
sending capabilities command
capabilities: unbundle=HG10GZ,HG10BZ,HG10UN branchmap lookup changegroupsubset
sending heads command
searching for changes
sending branches command
examining 0f2ee9bb1b60:db0b706a8287
found incomplete branch 0f2ee9bb1b60:db0b706a8287
sending between command
narrowing 1:9 3ac507755680
narrowing 2:9 9a604bcf7cb6
found new branch changeset 3ac507755680
found new changesets starting at 3ac507755680
1 total queries
common changesets up to 701a37cf7b57 0bcc0ac5b165 82131a66c508 1f90a0e6a20d 9a604bcf7cb6
sending branchmap command
note: unsynced remote changes!
1 changesets found
list of changesets:
7228c1d95dadd28abd15705d7be75bc2a1473991
sending unbundle command
sending 426 bytes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)

As you can see, a new head is created without the -force option set. Is this to be expected? Of course we can avoid it by first using "hg incoming", but this could be easily broken by race-conditions.
The interesting thing is that it works with new repositories. Of course I tried to update the server side to 1.3 (using hgwebdir.cgi) and cloned the repo there with -pull option, but it didn't help. Could it be related to the new branch command in the wire protocol? We don't use named branches at all...

regards,
Fritz

P.S.: I've skimmed through the bts, but couldn't find a related issue.

Development Software Systems
Festo Gesellschaft m.b.H.
Linzer Strasse 227
A - 1140 Wien

Firmenbuch Wien
FN 38435y

Tel: +43(1)91075-198
Fax: +43(1)91075-282
www.festo.at

Der Inhalt dieses E-Mails ist ausschliesslich fuer den bezeichneten Adressaten bestimmt. Jede Form der Kenntnisnahme, Veroeffentlichung, Vervielfaeltigung oder Weitergabe des Inhalts dieses E-Mails durch unberechtigte Dritte ist unzulaessig. Wir bitten Sie, sich mit dem Absender des E-Mails in Verbindung zu setzen, falls Sie nicht der Adressat dieses E-Mails sind und das Material von Ihrem Computer zu loeschen. 

This e-mail and any attachments are confidential and intended solely for the addressee. The perusal, publication, copying or dissemination of the contents of this e-mail by unauthorised third parties is prohibited. If you are not the intended recipient of this e-mail, please delete it and immediately notify the sender.  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://selenic.com/pipermail/mercurial/attachments/20090710/80309b5d/attachment.htm 


More information about the Mercurial mailing list