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