4

私はSOを見回しましたが、ここで私の正確なケースが見られなかったので、誰かが助けてくれることを願っています.

SCons プロジェクト (https://bitbucket.org/scons/scons) は、デフォルト ブランチで開発を行います。私は最近、マージする準備ができていない開発者 (彼を DEV と呼びます) のリポジトリからいくつかの変更を誤ってマージしてプッシュしました。そのため、これらの変更を取り消し (hg backout -rXXX --parent YYY)、それを bitbucket にプッシュする必要がありました。しかし、どうすれば今前進できるでしょうか?バックアウト wiki ページには次のように書かれています。

警告: マージをやり直したい場合、マージを取り消すと問題が発生します。不適切なマージに対処する唯一の安全な方法は、ブランチを放棄することです。

もちろん、デフォルトのブランチを放棄することはできません。そのため、DEV はメイン リポジトリからマージできません。そうしないと、進行中のすべての変更が失われます (バックアウトによって削除されるため)。bitbucket リポジトリにはすでにすべての変更 (およびバックアウト) が含まれているため、誰も DEV のリポジトリからマージできません。私たちは厳しい状況にあるようです。

私は2つの質問があると思います:

  1. DEV が進歩できるようにするために、今何をすべきか: 彼は変更を加えたレポを必要とし、作業が完了したら、それらの変更を bitbucket レポジトリにマージできるような形で作業できるようにします。

  2. プッシュされたマージが間違っていることを発見したら、何をすべきでしたか?

(ここには名前付きのブランチがないことに注意してください。すべてがデフォルトです。)

ありがとう!

4

2 に答える 2

1

もちろん、デフォルトのブランチを放棄することはできません。

できますよ。マージの前に更新し、そこで作業を続けます。これがヒントです。古いブランチに変更が必要な場合graft。その後、no-op マージを実行してデッド ヘッドを結び付けるか、単に で閉じることができますhg commit --close-branchこの回答を見てください。

于 2012-10-16T12:35:01.130 に答える
0

これをテストする時間はありませんが、次のように動作するはずです。

  1. DEV はメイン リポジトリからプルし、
  2. バックアウトのバックアウトを行い、次に
  3. ローカルで彼の機能に取り組み続けています。

この状態から、他の人も DEV からの新しい変更をマージするのに問題はないはずです。

于 2012-10-14T21:23:21.687 に答える