1

数か月前に名前付きブランチを開始しましたが、その後放棄しました。今、私はそれを「再開」したいと思っています。具体的には、デフォルトの最新バージョンに上げて、もう一度作業を開始したいと考えています。

ブランチに更新してから、デフォルトに戻そうとしましたが、

hg revert -a -r default

しかし、このブランチと実際のデフォルトの間を行き来すると、112 個のファイルが変更されていることがわかります。明らかにそれらは同じではありません。

結局、ブランチを閉じ、デフォルトに更新し、名前付きブランチに強制的に切り替えてから、強制的にプッシュしました(新しいヘッドが作成されるため)。

現在、私の名前付きブランチはデフォルトと同じですが、履歴にはこの短いデッド ブランチがあります。

私の質問は次のとおりです。

  1. デフォルトに戻す hg は何をしていたのですか? デフォルトの先端ではなく、最も近いデフォルトの祖先に戻っていましたか? 明示的な変更セットを介してヒントに戻ろうとしても、2 つのブランチは異なってしまいました。

  2. これを行う「適切な」方法は何ですか?

4

1 に答える 1

2

デフォルトに戻す hg は何をしていたのですか?

あなたの(本当に悪い)構文の場合:

-r/--rev または -d/--date オプションを使用して、指定されたファイルまたはディレクトリを特定のリビジョンの状態に戻します

つまり、リポジトリ内のすべてのファイルのデフォルト ブランチの最新の祖先の状態に

112 個のファイルが変更されていることがわかります。明らかにそれらは同じではありません

間違った仮定

元に戻しても作業ディレクトリの親は変更されないため、これらのファイルが変更されたように見えます。

つまり、この変更された作業ディレクトリと diff (テスト用) ブランチのヘッドをコミットする必要があります。

これを行う「適切な」方法は何ですか?

適切な方法は

ブランチ固有の変更を保存し、最新の変更でのみ更新する場合

  • 放棄されたブランチの先頭への更新
  • defaultブランチを自分のブランチにマージする
  • (存在する場合) すべての競合を解決する
  • マージセットをコミット

空のブランチのみを持ち、そこからすべての変更を削除する場合

  • ブランチからすべてのチェンジセットをバックアウトする
  • バックアウトチェンジセットをコミットする
  • デフォルトをブランチにマージ
于 2013-06-06T20:42:13.410 に答える