0

そのため、Mercurial を使い始めたばかりで、正しく処理する方法がよくわからない問題に遭遇しました。シナリオの例を次に示します。

Demo Branch --- Good Change 1  --- Bad Change 2  --- Good change 3  --- Good change 4
Prod Branch --- \Good Change 1 --- \Bad Change 2 --- \Good Change 3 --- \Good Change 4

したがって、基本的には適切な変更がコミットされ、テストされ、本番環境にマージされました。悪い変更がテストされ、動作することが想定され、本番環境にプッシュされました。最後に、さらに 2 つの優れた変更が本番環境にプッシュされました。私たちは今、「うーん」と気づきました。その 2 回目の変更は実際には問題でした。それを元に戻す必要がありますが、まだ良い変更 3 と 4 を無駄にしています。

バックアウトはデモでは機能しましたが、本番ではマージされたため機能しませんでした。私は最終的にすべてが正しく機能するようになりましたが、多くの移植と更新とマージがありました。他のすべてを前進させながら、その1つの問題を修正する簡単な方法があるはずです. ありがとう!

4

2 に答える 2

0

バックアウトはデモでは機能しましたが、本番では機能しませんでした。これはマージだったからです

なんてこと?変更セットがリポジトリ内の通常の変更セットの場合、この変更セットをプッシュした後は同じ変更セットになります。

!= マージをプッシュすると、決してマージされません。変更セットを破棄したい場合は、ソース リポジトリでバックアウトを使用して実行できます (つまり、新しい追加の変更セットを取得します)。この変更を公開するには、backout-changeset を製品にプッシュする必要があります(履歴は汚れていますが、最終的にはリポジトリの正しい状態です)。

于 2013-04-22T09:45:32.547 に答える