Perforce P4Vの「ロールバック...」と「バックアウト送信済み変更リスト#####」の違いは何ですか


198

チェックインの1つからの変更を元に戻したいです。特定のチェンジリストの右クリックコンテキストメニューには、次の2つのオプションがあります。

  • ロールバック...
  • 送信された変更リストを取り消す

これら2つの違いは何ですか?どちらの状況で使用すべきですか?


3
この場合、「送信済み変更リストのバックアウト」は私の状況に適したオプションでした(チェックインからの変更を元に戻したいだけです)。すばらしい回答をありがとう。
Dave Andersen、

回答:


222

これらの操作は両方とも、一連のファイルを以前の状態に復元し、p4 obliterateコマンドを使用するよりも本質的に高速で安全な間違いを元に戻す方法です(それらを使用するために管理者アクセス権は必要ありません)。

「ロールバック...」の場合、これは任意の数のファイルであり、デポ全体であってもかまいません。特定のリビジョン、チェンジリスト、またはラベルにロールバックするように指示できます。ファイルは、そのリビジョン、チェンジリスト、またはラベルの作成時の状態に復元されます。

「送信済み変更リスト#####のバックアウト」の場合、復元操作は、変更リスト#####で送信されたファイルに制限されます。これらのファイルは、変更リストを送信する前の状態に復元されます(それ以降、それらのファイルに変更が加えられていない場合)。これらのファイルのいずれかにその後の変更が加えられた場合、Perforceはそれらのファイルが現在古くなっていることを通知します。ヘッドリビジョンに同期してから、違いを解決する必要があります。これにより、実際に保持したい変更を誤って変更しないようにできます。

どちらの操作も、基本的に古いリビジョンを新しいリビジョンとして送信することで機能します。「ロールバック...」を実行すると、その後何が起こったかに関係なく、ファイルを特定の時点での状態に復元します。「バックアウト...」を実行すると、それ以降に発生した変更を維持しながら、特定の時点で行った変更取り消そうとしています。


18
私が考える「バックアウトサブミット済チェンジが#####」になるしようと与えられたチェンジリストの後に同じファイルに加えられた変更を維持します。
Ian Ringrose 2011

1
@イアン:良い観察。これを書いたとき、私はすぐに間違いを訂正するという線に沿って考えていました。通常の場合と同様に、後で何かを元に戻したい場合は、さらに複雑になります。私は私の答えを洗練させました。
レイヴン

@IanRingrose「バックアウト」操作を実行したばかりで、後で行われた変更を保持しようとしないようです。バックアウト後に送信された変更を元に戻すには、同期を実行してから解決する必要がありました。
gdw2 2012年

@ gdw2、「ロールバック」を実行した場合、「...の後に送信された変更を元に戻すために解決する」オプションを取得できないと思います
Ian Ringrose

1
ファイルは元の状態に復元されますが、メタデータは復元されません。別のブランチから統合をロールバックしようとしても、メタデータはすでに統合されていると言っているため、その統合を再度実行することはできません。
2018年

17

チェンジリストの送信を取り消す

成功したチェンジリストの送信を取り消すことはできませんが、以前に送信された変更を2つの方法で取り消すことができます。

ロールバックは、ファイルまたはファイルのセットを、指定されたチェンジリスト、日付、またはリビジョンに復元します。その時点以降に行われた変更は保持されません。 バックアウトは、特定のチェンジリスト、日付、またはリビジョンで行われた特定の変更を削除しますが、ユーザーは後続のリビジョンで行われた変更を保持できます。

詳細については、https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.htmlを参照してください。


8

バックアウトは、変更を復元または元に戻します。これを行う方法は、P4がローカルワークスペースのチェンジリスト(デフォルトまたは新規)の変更を元に戻すことです。次に、他の変更リストと同様に、このバックアウトされた変更リストを送信/コミットする必要があります。2番目の部分はここで重要です。サーバーのチェンジリストは自動的にバックアウトされないため、バックアウトされたチェンジリストを送信する必要があります(これは実行後に意味がありますが、最初は自動的に行われると想定していました)。

他の人が指摘したように、ロールバックにはより大きな力があります-特定の日付、チェンジリスト、またはリビジョンへの変更を復元できます#


4

ロールバック...は、ロールバックするフォルダーを選択するように求めます。つまり、特定のフォルダーで機能し、ラベル、変更リスト、または日付にロールバックできます。バックアウトは、特定のチェンジリストのファイルで機能します。


4

Perforceチェンジリストをスタック(データ構造から)と比較することで、ユーザーにこれを説明します。

バックアウトすると、スタック内の任意の場所から1つのアイテムが削除されます。

ロールバックすると、スタックの一番上からn個のアイテムが削除されます。


0

最も単純な場合、違いは複数のうちの1つです。

  • バックアウトは、単一のチェンジリストからバックアウトします(最新のものかどうかに関係なく)。つまり、単一のチェンジリストを元に戻します。
  • ロールバック、それは前のチェンジリストを取得するためにする必要があるとして、ロールは限り変更をバックアップ。つまり、複数のチェンジリストを元に戻します。

どれがどれかを忘れて、何度も調べなくてはなりませんでした。この問題を解決するには、いくつかのローテーションとしてロールバックすることを想像してください。ロールバックが複数であるという事実は、あなた(そして私!)がどれがどれであるかを覚えるのに役立ちます。バックアウトは、ロールバックよりも「複数」に聞こえません。1つの駐車スペースから後退することを想像してください。

したがって、ニーモニックは次のとおりです。

  • ロールバック →複数ローテーション
  • バックアウト1台分の駐車スペースからのバックアウト

これが役に立てば幸いです!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.