Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The default phase for a commit is <code>draft</code>, that's how they were treated when the phases didn't exist. When pushing a <code>draft</code> changeset, mercurial automatically changes its phase to <code>public</code>. You can use it to know which changesets you have already published or not.</p> <p>But the real issue is that when the changeset is in <code>public</code> phase, mercurial won't let you change them with history editing extensions (like <code>mq</code>, <code>rebase</code>, etc). That's really important, because the history editing happens <em>only</em> in the local repository, they don't propagate with <code>pull</code>/<code>push</code> operations. So, once a changeset is published, it's out of control, it's dangerous to change it.</p> <p>You can change from any phase to any other phase. The "normal flow" is to move to a higher phase (secret->draft->public), but Mercurial allows the change to a lower phase with the <code>--force</code> option. A phase change alone is harmless. For example, the only thing that happens when moving from <code>public</code> to <code>draft</code> or <code>secret</code> is that the protection of history editing is dropped, nothing else, pull and push will still work normally, Mercurial could never be confused about the changesets because they have unique identifiers. The history editing action that takes place <em>after</em> a phase change like this is what can cause problems. And that's why Mercurial gives the warning in the phase change and requires the <code>--force</code> option, as a confirmation that that's what you really want.</p> <p>In general published commits shoudn't be modified, that's what the phases try to ensure. But maybe you do have control over all repositories. Or maybe you pushed something and you know that no one else pulled it yet. Whatever is the reason, you have the option of forcing the phase of the changesets back to draft and edit them. But this edition must be done in every repository that has the changesets.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload