Mercurial-ブランチが作成されてコミットされた後(ローカルと中央リポジトリの両方で)ブランチの名前変更を実行するために必要な手順は何ですか。
たとえば、Zeldaというブランチを作成し、コミットして中央リポジトリにプッシュしました。ブランチの名前をTriforceに変更したいと思います。
これを実現する拡張機能はありますか?拡張ソリューションに加えて、長い道のりは何でしょうか?
短い答えはノーです。
長い答えは、Mercurial ブランチは変更セットに付けられた名前です。いくつかの変更セットをブランチzeldaにコミットして配布した場合 (つまり、中央リポジトリにプッシュした場合)、これらの変更セットを再作成せずにそのブランチの名前を変更する方法はありません。つまり、履歴を書き換えることになります。
リポジトリと中央リポジトリの両方でこれらの変更セットを削除し、それらをブランチtriforceに属するものとして再作成し、「名前を変更した」ブランチを再度プッシュしても、すべてのコラボレーターは変更セットの 2 つのコピーを持つことになります。 、ブランチzeldaの 1 つのセット、ブランチtriforceの別のセット。
はい、あなたがすべきことはhttps://stackoverflow.com/a/7245187/67988に記載されています。そこから引用すると、ブランチ名に合わせて調整されます。つまり、zeldaは閉じられる古いブランチであり、triforceは作成される新しいブランチです。
hg update zelda
hg commit --close-branch -m "mgmt: Close branch zelda"
hg branch triforce
hg commit -m "mgmt: Create branch triforce"
hg push --new-branch
PS誰もまだ中央レポからプルしていない場合は、そこからゼルダを削除してみてください。または、他のすべての開発者の PC (制御された環境を想定) にアクセスでき、非常に危険な道を 1 つだけ進みたい場合は、すべてのリポジトリからこのブランチを取り除くことができます。これは間違いなく良い方法とは見なされず、最後の手段としてのみ使用できます。
mutable-branches 拡張機能は、ブランチの名前が変更されたように見せることができます。