コマンドのチートシートは次のとおりです。
hg update作業コピーの親リビジョンを変更し、この新しい親リビジョンに一致するようにファイルの内容も変更します。つまり、更新したリビジョンから新しいコミットが引き継がれます。
hg revertファイルの内容のみを変更し、作業コピーの親リビジョンのみを残します。通常はhg revert、ファイルに加えたコミットされていない変更を作業コピーに残したくない場合に使用します。
hg branch新しい名前付きブランチを開始します。名前付きブランチは、チェンジセットに割り当てるラベルと考えてください。したがって、を実行するhg branch redと、次のチェンジセットは「赤い」ブランチに属するものとしてマークされます。これは、特に異なる人々が異なるブランチで作業していて、後でチェンジセットの発生元を確認したい場合に、チェンジセットを整理するための良い方法です。しかし、あなたはあなたの状況でそれを使いたくないのです。
を使用するhg update --rev 38場合、チェンジセット39〜45は行き止まり、つまり、ぶら下がりヘッドと呼ばれます。プッシュするリポジトリに「複数のヘッド」を作成するため、プッシュすると警告が表示されます。誰かがマージを行う必要があることを示唆しているので、そのような頭を残しておくのは一種の失礼なので、警告はそこにあります。しかし、あなたの場合、あなたは単に先に進むことができます、そしてhg push --forceあなたは本当にそれをぶら下げたままにしたいので。
リビジョン39-45をまだどこかにプッシュしていない場合は、非公開にしておくことができます。これは非常に簡単です。hg clone --rev 38 foo foo-38リビジョン38までしか含まれていない新しいローカルクローンを取得foo-38できます。作業を続け、作成した新しい(適切な)チェンジセットをプッシュできます。fooクローンには古い(悪い)リビジョンが残っています。(クローンの名前は自由に変更できます。たとえば、footo foo-badやfoo-38to fooなど)。
最後に、使用hg revert --all --rev 38してコミットすることもできます。これにより、リビジョン38と同じように見えるリビジョン46が作成されます。その後、リビジョン46から作業を続けます。これにより、履歴と同じように明示的な方法でフォークが作成されることhg updateはありませんが、一方で、複数の頭。hg revertすでにリビジョン45に基づいて自分で作業を行っている他の人と共同作業をしている場合に使用します。それ以外の場合は、hg updateより明確です。