publish =False to True, no change

Paul Morelle paul.morelle at octobus.net
Wed Oct 10 17:42:44 UTC 2018


On 10/10/18 4:54 PM, Uwe Brauer wrote:
> Hello Paul,
>
>    > On 10/10/18 1:11 PM, Uwe Brauer wrote:
>
>    > Hello Uwe,
>
>    > This setting is telling Mercurial that your repository is not
>    > publishing. That is, when changesets are exchanged with it, whether
>    > they become public or remain draft.
>    > From the behavior you describe, I guess that the bitbucket repository is
>    > set as non-publishing (Settings, Repository details, Phases: [x] This is
>    > a non-publishing repository).
>
> I will check that, thanks for pointing out. Yes you are right. 
>
> That repo is indeed private, that is I collaborate just with one other
> author and we both push and pull there. I want to leave it this way, so,
> if I understand you correctly, I better got back to my original setting.
>
> Or is it just that the setting has no effect at all, if the repo is that
> this way?

This setting has no effect on the accessibility of your repository from
another user.
Published changesets are just considered as immutable by Mercurial (you
cannot amend, prune or rebase them).
On the other hand, access to the repository is managed by Bitbucket, and
anyone who has a read access can see either 'public' or 'draft' changesets.

At the changeset level, 'public' doesn't mean that you share it with
everyone. It means that you promise that this changeset won't be
tampered with.

>    > If you want to have this publishing behavior for all your pushes, then
>    > you can uncheck this checkbox.
>    > However, you will probably prefer to choose when you publish or not. The
>    > command to publish a changeset is:
>
>    >     hg push --publish -r changeset
>
> Just to be sure that there is no misunderstanding, I want my bitbucket
> repo to be private not public.  So 
>
>     1. What will hg push --publish -r changeset
>        do for such a repo.

`hg push --publish -r 5` will do the same as `hg phase --public -r 5 &&
hg push -r 5`

I.e. it will change the phase of the changeset 5 to 'public' (as in
'immutable'), and push it on your repository.

>     2. Is it better to have 
> [phases]
> publish = False
>    
>      for such a repo?

This configuration is what you set or unset when you check or uncheck
'This is a non-publishing repository' in Bitbucket's settings page.

`publish = True` in a repository means that the changesets pushed to
this repository will be marked as 'public' (i.e. immutable).
Personnally, I have a `phases.publish = False` in my global hgrc,
because I don't want to publish changesets by mistake.

For more information about phases, you should read
https://www.mercurial-scm.org/wiki/Phases

> Uwe 
>
> _______________________________________________
> Mercurial mailing list
> Mercurial at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20181010/f7c8cde9/attachment-0002.html>


More information about the Mercurial mailing list