チェックインの1つからの変更を元に戻したい。特定のチェンジリストの右クリックコンテキストメニューには、次の2つのオプションがあります。
これら2つの違いは何ですか?どの状況でどちらを使用する必要がありますか?
これらの操作は両方ともファイルのセットを以前の状態に復元し、p4 obliterate
コマンドを使用するよりも本質的に速く、安全にミスを取り消す方法です(そして、それらを使用するために管理者アクセスは必要ありません)。
「ロールバック...」の場合、これは任意の数のファイルであり、デポ全体であってもかまいません。特定のリビジョン、チェンジリスト、またはラベルにロールバックするように指示できます。ファイルは、そのリビジョン、チェンジリスト、またはラベルの作成時の状態に復元されます。
「サブミット済みチェンジリスト#####をバックアウト」の場合、リストア操作はチェンジリスト#####でサブミットされたファイルに制限されます。それらのファイルは、それ以降変更が加えられていない限り、そのチェンジリストを送信する前の状態に復元されます。これらのファイルのいずれかに後続の変更が行われた場合、Perforceはそれらのファイルが現在古くなっていることを通知します。ヘッドリビジョンに同期してから、違いを解決する必要があります。このようにして、実際に保持したい変更を誤って上書きすることはありません。
両方の操作は、基本的に古いリビジョンを新しいリビジョンとして送信することで機能します。 「ロールバック...」を実行すると、ファイルを特定の時点での状態に復元するになります。 「バックアウト...」を実行すると、それ以降に発生した変更を維持しながら、特定の時点で行った変更を取り消すを試みています。
チェンジリストの提出を取り消す
成功したチェンジリストのサブミットを取り消すことはできませんが、以前にサブミットした変更を2つの方法で元に戻すことができます。
Rollbackは、指定されたチェンジリスト、日付、またはリビジョンにファイルまたはファイルのセットを復元します。その時点以降に行われた変更は保持されません。 Back outは、特定のチェンジリスト、日付、またはリビジョンで行われた特定の変更を削除しますが、ユーザーは後続のリビジョンで行われた変更を保持できます。
詳細については、 https://www.perforce.com/perforce/r13.1/manuals/p4v/Working_with_changelists.html を参照してください。
バックアウトは、変更を復元または元に戻します。これを行う方法は、P4がローカルワークスペースのチェンジリスト(デフォルトまたは新規)の変更を取り消すことです。その後、他の変更リストと同様に、このバックアウトされた変更リストを送信/コミットする必要があります。ここでは、サーバー上のチェンジリストを自動的にバックアウトしないため、2番目の部分が重要です。
他の人が指摘したように、ロールバックには大きな力があります-特定の日付、チェンジリスト、またはリビジョンへの変更を復元できます#
[ロールバック...]は、ロールバックするフォルダーを選択するように要求します。つまり、特定のフォルダーで機能し、ラベル、変更リスト、または日付にロールバックできます。バックアウトは、特定のチェンジリスト内のファイルに対して機能します。
Perforceチェンジリストとスタック(データ構造から)を比較して、これをユーザーに説明します。
バックアウトすると、スタック内のどこからでも1つのアイテムが削除されます。
ロールバックすると、スタックの最上部からn個のアイテムが削除されます。
最も単純な場合、違いは複数のいずれかです。
私は、どれがどれであるかを忘れて、何度も調べなければなりませんでした。この問題を解決するために、いくつかのローテーションとしてロールバックすることを想像してください。そして、できればrollbackが複数であるという事実があなた(そして私!)がどれがどれかを思い出すのに役立ちます。 バックアウトはロールバックよりも「複数形」に聞こえます。 single駐車スペースの後退を想像してください。
ニーモニックは次のとおりです。
これがお役に立てば幸いです!