機械制御/振動騒音
IR情報 会社情報

PERFORCEテクニカルノート014

image_toyo_ss_img_perforce_title_perforce.gif.gif
テクニカルノート014  
image_toyo_ss_img_all_line_yellow.gif.gif
image_toyo_common_spacer.gif.gif
変更を取り消す方法

image_toyo_common_spacer.gif.gif
簡潔に言えば、当該ファイルにおいて有効となる最新リビジョンに同期し、新しいバージョンとしてそのファイルをサブミットすることになります。簡単な ものから複雑なものまで、以下に 3つのシナリオを列挙します。: image_toyo_ss_img_all_line_dot_526.gif.gif
ごく最近のチェンジリスト(編集目的のみ)を取り消す
image_toyo_common_spacer.gif.gif
チェンジリスト 1000 を誤ってサブミットしたとします。チェンジリスト 1000の内容は次のとおりです。
image_toyo_common_spacer.gif.gif
Change 1000 by trudi@spice on 1999/07/27 11:47:04
image_toyo_common_spacer.gif.gif
Webページを改修した。
image_toyo_common_spacer.gif.gif
Affected files ...
image_toyo_common_spacer.gif.gif
... //depot/foo#9 edit
... //depot/bar#3 edit
... //depot/ola#4 edit

image_toyo_common_spacer.gif.gif
チェンジリスト 1000 では編集しか行っておらず、追加も削除もしていないこ とに注意してください。さらに、この単純なシナリオでは、チェンジリスト 1000がサブミットされた直後であると仮定します。サブミットされた後、このクラ イアント・ワークスペース内では何の変更も行われておらず、またチェンジリ スト 1000 の中で変更されたファイルに対して、引き続いて誰もサブミットを行っていないと仮定します。
image_toyo_common_spacer.gif.gif
チェンジリスト 1000 を取り消すためにしなければならないことは、次のとお りです。:
image_toyo_common_spacer.gif.gif
  1. p4 sync @999
  2. p4 edit //depot/foo //depot/bar //depot/ola
  3. p4 sync
  4. p4 resolve -ay
  5. p4 submit
これらのコマンドが行っていることを、詳しく説明します。:
image_toyo_common_spacer.gif.gif
  1. チェンジリスト 1000 で影響を受けたファイルについて、戻したいリ ビジョンに同期します。-- つまりそれは、チェンジリスト 1000 をサブミ ットする前のファイル・リビジョンになります。
  2. これらのファイルを、編集目的の作業状態にします。
  3. 最新リビジョンに同期します。作業中のファイルは変更されず、衝突 解決がスケジュールされるだけです。
  4. "yours を承諾" でファイルを衝突することによって、クライアント・ ワークスペースのファイルの内容は変更されません。
  5. 戻したかったリビジョンが、最新リビジョンとしてサブミットされま す。
image_toyo_ss_img_all_line_dot_526.gif.gif
古いチェンジリスト(編集目的のみ)を取り消す
image_toyo_common_spacer.gif.gif
このシナリオでは、チェンジリスト 1000 は少し以前にサブミットされました。その後、当該ファイルに対して、さまざまな正しい編集がサブミットされてい ます。このケースでは、当該ファイルに対して引き続き行われている変更を考 慮しなければならない(チェンジリスト 1000 における変更だけを取り消し、 続くそれ以外の変更は取り消さないかもしれない)ため、前のシナリオより複 雑です。前のシナリオと同様、チェンジリスト 1000 は編集目的のファイルだ けを含み、追加および削除はないものとします
image_toyo_common_spacer.gif.gif
古いチェンジリストを取り消す際、使用するクライアント・ワークスペースに は、ほかに作業状態になったファイルがないようにすることをお勧めします。 (p4 opened を実行することによって、現在のクライアント・ワークスペース で作業状態のファイルがあるかどうかを確認できます。)このシナリオでチェ ンジリスト 1000 を取り消すには、次のようにします。:
image_toyo_common_spacer.gif.gif
  1. p4 sync @999
  2. p4 edit //depot/foo //depot/bar //depot/ola
  3. p4 sync @1000
  4. p4 resolve -ay
  5. p4 sync
  6. p4 resolve
  7. p4 submit

image_toyo_common_spacer.gif.gif
説明:
image_toyo_common_spacer.gif.gif
  1. クライアント・ワークスペースを同期して、ファイルがチェンジリスト 1000 より前の状態になるようにします。
  2. チェンジリスト 1000 で影響を受けたファイルを、編集目的の作業状態に します。
  3. クライアント・ワークスペースを同期して、ファイルがチェンジ リスト 1000 のときの状態になるようにします。作業状態になったファイルは変更されず、衝突解決がスケジュールされるだけです。
  4. "yours を承諾" でファイルを衝突することによって、クライアント・ワー クスペースのファイルの内容は変更されません。
  5. クライアント・ワークスペースを最新リビジョンに同期します。作業状態になったファイルは変更されず、再び衝突解決がスケジュールされます。
  6. クライアント・ワークスペース内で作業状態のファイルに対して、チェン ジリスト 1000 以降に行われたすべての変更を対話形式でマージすることがで きます。つまり、適切な編集をマージして戻すことになります。それぞれのフ ァイルに対して、"マージ結果を承諾" で衝突解決します。(もし、コンフリク トしている箇所があれば、初めにマージ結果を編集しなければなりません。コ ンフリクトとは、チェンジリスト 1000 によって変更された箇所が、継続する チェンジによっても別の内容で変更されたことを示します。)
  7. 変更したリビジョンを、最新リビジョンとしてサブミットします。
image_toyo_ss_img_all_line_dot_526.gif.gif
編集同様、追加および削除目的のチェンジリストを取り消す
image_toyo_common_spacer.gif.gif
もし、間違ったチェンジリストの中に追加または削除されたファイルがあった場合、どうすればよいでしょうか。ファイルが追加されていればそれを削除し、 削除されていれば追加するよう、元に戻すための新しいチェンジリストをサブ ミットします。最後のシナリオでは、チェンジリスト 1000 が次のように追加と削除と編集を含んでいると仮定します。:
image_toyo_common_spacer.gif.gif
Change 1000 by trudi@spice on 1999/07/27 11:47:04

RevampのWebページ。

Affected files ...

... //depot/foo#1 add
... //depot/bar#3 delete
... //depot/ola#4 edit

image_toyo_common_spacer.gif.gif
このシナリオにおいてチェンジリスト 1000 を取り消すには、次の手順を使用します。(もし、使用中の PERFORCE がリリース 99.1 以降でないならば、後 述の特別な手順をご覧ください。)
image_toyo_common_spacer.gif.gif
  1. p4 sync @999
  2. p4 edit //depot/ola
  3. p4 add //depot/bar
  4. p4 sync @1000
  5. p4 resolve -ay
  6. p4 sync
  7. p4 resolve
  8. p4 delete //depot/foo
  9. p4 submit

image_toyo_common_spacer.gif.gif
説明:
image_toyo_common_spacer.gif.gif
  1. クライアント・ワークスペースを同期して、ファイルがチェンジリスト 1000 より前の状態になるようにします。
  2. 編集されたファイルを、編集目的の作業状態にします。
  3. 削除されたファイルを、追加目的の作業状態にします。
  4. クライアント・ワークスペースを同期して、ファイルがチェンジリスト 1000 のときの状態になるようにします。作業状態になったファイルは変更され ません。編集目的で作業状態にされたファイルに対して、衝突解決がスケジュー ルされます。
  5. //depot/ola を "yours を承諾" でファイルを衝突することによって、当 該ファイルの内容は変更されません。
  6. クライアント・ワークスペースを最新リビジョンに同期します。作業状態になったファイルは変更されず、再び衝突解決がスケジュールされます。
  7. チェンジリスト 1000 の後、//depot/ola 対して行われたすべての変更を対話形式でマージすることができます。
  8. チェンジリスト 1000 で追加されたファイルを、削除目的で作業状態にし ます。
  9. 変更されたファイルを最新リビジョンとしてサブミットします。

image_toyo_common_spacer.gif.gif
99.1 より前の特別な手順:
追加および削除目的のチェンジリストを編集目的と同様に取り消す
image_toyo_common_spacer.gif.gif
上記のシナリオは、以前の p4 add コマンドが持つ制限により、リリース 99. 1 より前の PERFORCE では動作しません。もし、PERFORCE を現在のリリースに アップグレードしていないならば、上記に示したのと同じようにチェンジリス トを取り消すために、次に示すコマンド手順を実行しなければならないかもし れません。:
image_toyo_common_spacer.gif.gif
  1. p4 sync @999
  2. p4 edit //depot/ola
  3. p4 flush @1000
  4. p4 resolve -ay
  5. p4 flush
  6. p4 resolve
  7. p4 delete //depot/foo
  8. p4 add //depot/bar
  9. p4 submit
  10. p4 flush @999
  11. p4 sync

image_toyo_common_spacer.gif.gif
説明:
image_toyo_common_spacer.gif.gif
  1. クライアント・ワークスペースを同期して、ファイルがチェンジリスト 1000 より前の状態になるようにします。
  2. 編集されたファイルを編集目的で作業状態にします。
  3. p4 flush コマンドを実行します。このコマンドは、実際にはクライアント・ ワークスペースのファイルを変更しません。PERFORCE に対して、現在のクライ アント・ワークスペースがチェンジリスト 1000 を同期した状態であるかのよ うに思わせ、//depot/bar ファイルを削除しません。
  4. //depot/ola を "yours を承諾" でファイルを衝突することによって、当 該ファイルの内容は変更されません。
  5. すでに削除されたすべてのファイルを削除することなく、PERFORCE に対して、最新リビジョンを同期しているかのように思わせます。
  6. 前回のシナリオと同様、チェンジリスト 1000 の後に行われたすべての変 更を、編集目的で作業状態のファイルに対して対話形式でマージすることがで きます。
  7. 前回に追加されたファイルを、削除目的で作業状態にします。
  8. 前回に削除されたファイルを、追加目的で作業状態にします。(これが、p4 flush を実行した理由です。これにより、クライアント・ワークスペースにあ るこのファイルは残ります。)
  9. 変更されたファイルを最新リビジョンとしてサブミットします。
  10. PERFORCE に対して、クライアント・ワークスペースがチェンジリスト 999に同期されているかのように思わせます。(最初に p4 flush を実行する前の、 本来あるべき姿です。)これは、次のステップで正しいファイルを同期するこ とを確実にするためのものです。
  11. クライアント・ワークスペースを、現在のディポ・ファイルに同期します。

image_toyo_common_spacer.gif.gif
image_toyo_ss_img_all_btn_yellow_bgwhite2.gif.gif戻る

PAGE TOP