7

コマンドライン svn からの不正なコミットを元に戻したいです。通常のアドバイスは、コミットを作業コピーに逆マージしてから、変更をコミットすることです。私の場合、悪いコミットは入力ミスでsvn importあり、他のどこにもチェックアウトしていないリポジトリの一部が破棄されました。影響を受けるディレクトリをチェックアウトしてから、通常のアドバイスに従うこともできますが、作業コピーなしで URL を使用して完全に逆マージできれば、より洗練されたものになります。これは可能ですか?

4

1 に答える 1

2

いいえ、単に URL を介してマージすることはできません。これは、結果のマージを確認することさえせずにマージすることを意味するためです。これは非常に悪い習慣です。

これが悪くない状況があります:

  • 現在のバージョンであるリビジョン 455 で、誰かがひどく大規模な変更を行いました。あまり心配することなく、リポジトリをバージョン 454 に簡単に復元できます。最終結果がどうなるかを見る必要はありません。

ただし、次のように想像してください。

  • 誰かがリビジョン 455 でひどい大規模な変更を行いました。現在のリビジョンは 460 です。Subversion には 5 つの新しい変更があります。前の例で行ったように、変更セット 455 を取り消すことができますが、リビジョン 454 は取得されません。代わりに、リビジョン 456 から 460 で行われた変更を含むリビジョン 454 が取得されます。これらの変更の一部は、混乱から独立している可能性があります。リビジョン 455 が作成されました。これらの変更の一部は、リビジョン 455 で行われた変更が原因である可能性があります。

片付けなければならない大きな混乱があることは理解していますが、あなたが混乱している理由は、コミットする前に最初に確認する必要なく、誰かがsvn importコマンドを介して変更をコミットしたためです。これが、私がsvn mergeコマンドの使用を思いとどまらせる理由です。

于 2012-07-15T04:57:00.603 に答える