Hg push tries to push data to repo without any changes
Pierre-Yves David
pierre-yves.david at logilab.fr
Fri Jan 25 11:33:16 UTC 2013
On Wed, Jan 23, 2013 at 01:41:04PM -0600, Matt Mackall wrote:
> On Tue, 2013-01-22 at 19:40 -0800, Roman Kamyk jr wrote:
> > Hi,
> > I have a 'dotfiles' repo with couple subrepos, and have been using this
> > fine for long time. Recently I migrated to a new machine, installed new
> > Ubuntu 12.10, cloned the repo fine, but I am not able to push, because hg
> > tries to push to one of the subrepos - that I didn't change, and I have no
> > authorization to push on bitbucket.
> > The problematic repo is https://bitbucket.org/tksoh/hgshelve, even without
> > any subrepos there is a problem as ilustrated by new clone & push:
> >
> > rkj at rkjunior:~/tmp$ hg clone https://bitbucket.org/tksoh/hgshelve
>
> I've reproduced this here. Please file a bug on the BTS:
>
> http://mercurial.selenic.com/wiki/BugTracker
>
> This repo appears to be in a state of sin:
>
> $ hg debugpushkey https://bitbucket.org/tksoh/hgshelve phases
> 1155713d3222ebee34b59900df8abaf59cea64a1 1
> publishing True
>
> It's simultaneously advertising that some changesets are draft but that
> all of them are public. The client thus tries to tell it "uh, this thing
> you think is draft is public now". Both the client and server side are
> buggy.
That is the expected behavior. The public server serves a repository also used for local operation.
Those local operation creates draft changesets as expected. They have no way to
know that the repo is being currently publicly served.
Publishing server advertise it using the {publishing: → True} pairs. This
allows client pushing//pullin new changesets to know that everything they have
in common is public.
To ensure that a pull//push cycle to a publishing serverturns changeset public,
the server also have to advertise its actual phase root so that the client can
correct them is necessary.
For details, see: http://selenic.com/hg/file/692cbda1eb50/mercurial/phases.py#l57
We could imagine to have a smarter server that removes the needs for client to
update the phase of the server. Not sure it is a good idea
We could imagine that bitbucket will either support phases or not support
phases instead of a mix of too. Changeset automatically created by bitbucket
SHOULD me turn public in publishing repo.
--
Pierre-Yves David
http://www.logilab.fr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20130125/afe23385/attachment.asc>
More information about the Mercurial
mailing list