Unreal Revision Control (URC) では、[Snapshot History (スナップショット履歴)] タブにプロジェクトの開始時点からサブミットされたすべてのスナップショットが一覧表示されます。 このタブでは、重要なスナップショット情報、アセットの競合をすばやく検索し、スナップショットを日付で絞り込むことができます。
[Sync Latest (最新に同期)] を押すと、競合が見つかった場合、競合の変更に関するポップアップ メッセージが表示されます。 [Conflict Resolution] タブを開くと、どのアセットが競合しているかを表示し、ビューポートまたは関連付けられているアセット エディタでアセットに行われたすべての変更を開くことができます。
アセットの変更を確認した後、[Conflict Resolution] タブからプロジェクトの現在の状態として使用する変更を選択します。 これにより、競合しているアセットが簡単に解決され、プロジェクトの状態の新しいスナップショットが作成されます。
これらの機能により、プロジェクトを妨げる要因を減らし、チームメイトが競合を独自に解決できるようになります。 競合が解決されると、[Snapshot History] タブに新しいスナップショットが表示され、チーム メンバーはすべてのスナップショットと解決された競合を確認できます。
[Snapshot History (スナップショット履歴)] タブ
[Revision Control (リビジョン コントロール)] > [View Snapshot History (スナップショット履歴を確認する)] を選択して、[Snapshot History] タブを開きます。
スナップショットをダブルクリックするか、展開アイコンをクリックしてスナップショットの詳細を開きます。 ここでは、アセットとその状態、および変更の日時を確認できます。
[Snapshot History] タブを開いた状態で作業できます。 タブの上部から、変更のチェックイン、最新のスナップショットへの同期、特定のタイムスタンプでのスナップショットの絞り込みを行うことができます。
プロジェクトにアセットやアクタを追加すると、[Check in Changes (変更をチェックイン)] ボタンが強調表示されます。 このボタンをクリックすると、新しいスナップショットをサブミットできます。 新しいスナップショットは、スナップショット履歴リストの一番上に追加されます。
巻き戻しアイコンをクリックすると、以前のスナップショットを表示できます。
前回同期した後、[Snapshot History] タブから競合しているアセットを見つけることもできます。 リスト内の競合は、競合アイコンとスナップショット内の競合数で表示されます。
リストの右側の競合をクリックすると、競合しているアセットを表示できます。
以前のスナップショットに戻す
以前のスナップショットに戻す機能を使うと、以前のスナップショットに戻って、スナップショット履歴の過去の時点から作業をやり直すことができます。 スナップショットに加えた変更が気に入らず、以前のスナップショットに立ち戻りたいときに使用できます。
以前のスナップショットに戻すと、スナップショット履歴で選択した時点から現在作業しているスナップショットまでの間に加えた変更が、すべてなかったことになります。
以前のスナップショットに戻す手順は次のとおりです。
[Snapshot History] からスナップショットを選択し、巻き戻しアイコンをクリックします。 [Snapshot History (スナップショット履歴)] タブと下部ツールバーに、[Restore as Latest (最新として復元)] というボタンが新たに表示されます。
[Restore as Latest (最新として復元)] ボタンをクリックします。 [Restore as Latest (最新として復元)] ウィンドウが表示されます。
以前のスナップショットに戻す理由と、置き換えられるスナップショットに関する説明を入力します。
ウィンドウ下部の [Restore as Latest] ボタンをクリックします。
スナップショット履歴で選択した時点から現在作業しているスナップショットまでがグレー表示になり、なかったことになるスナップショットの横のラインが点線になります。
スナップショット履歴の時間軸内でグレー表示にしたスナップショットでも、単に選択するだけでその時点に戻すことができます。
アセット レベル アクション
アセット レベル アクションは、スナップショット履歴からアセットを編集する方法を提供します。 スナップショットを展開して、スナップショット内のアセットを表示します。 スナップショット リスト内のアセットにカーソルを置くと、アセット レベルの編集ツールが表示されます。 編集アイコンをクリックすると、ツールを使用できます。
各ツールにはそれぞれ異なる目的があります。
スナップショット中心の編集
コンテンツ ブラウザでアセットを開く
アセットの依存関係を表示する
スナップショット編集
スナップショット編集はアセット レベルで実行できます。 アセットのスナップショット編集には 2 つのオプションがあります。
スナップショット番号に同期する
現在のスナップショットで表示
スナップショット番号に同期とは、アセットをそのスナップショットに同期することを意味します。 現在のスナップショットで表示では、そのスナップショット レベルでビューポートにアセットを表示できます。 リストから選択するには、編集アイコンをクリックしてから、選択項目をクリックします。
コンテンツ ブラウザを開く
コンテンツ ブラウザでアセットを開くことを選択すると、アセットが事前に選択された状態でコンテンツ ブラウザが開きます。
依存関係を表示する
一部のアセットには、他のアセットへの変更を元に戻すことができる依存関係があります。 このビューでは、アセットを古いスナップショットに同期したり、そのスナップショットからアセットに変更を加えたりする前に、すべての依存関係を表示して情報に基づいた決定を下すことができます。
リンク アイコンを選択して依存関係ビューアを開き、アセットのすべての依存関係を確認します。
競合の解決
競合の解決は、[Conflict Resolution] タブからのみ実行できます。 このタブは、競合状態のアセットがある場合にのみ表示されます。 [Conflict Resolution] タブでは、次の 4 種類の競合を解決できます。
アセットへの接続が失われてから、オフラインでアセットに行った変更。
[Auto Checkout (オート チェックアウト)] をオフにした状態で、最新のスナップショットに同期することなく、または変更をチェックインすることなく行ったアセットへの変更。
Windows エクスプローラーからプロジェクト ファイルに行った変更。
同じ Verse コードで動作する 2 人のチームメイト。
[Sync to Latest (最新に同期)] をクリックすると、アセットの競合が表示されます。 アセットに競合があるときにプロジェクト ファイルを同期しようとすると、[Conflicting Changes (競合する変更)] ポップアップ メッセージが表示されます。 ポップアップ メッセージの [Review Conflicts (競合を確認)] ボタンをクリックすると、競合の解決を開始できます。
これにより、[Conflict Resolution] タブが開きます。このタブで、自分の変更のスナップショットを保存するか、同僚の変更のスナップショットを保存するかを選択して、競合を解決します。 タブ リストの上部で、[All Mine (すべて自分の変更)] と [All Theirs (すべて他のユーザーの変更)] のどちらかを選択するか、[All Mine] や [All Theirs] の個々の変更を保持するかを選択できます。
アセットの競合は 2 つのサムネイルで表されます。 競合リストからアセットの変更を選択し、[Reload level to preview (レベルをリロードしてプレビュー)] をクリックします。 関連するアセット エディタまたはビューポートにアセットに対して行われた変更が表示されます。 保持する変更を選択したら、[Resolve Conflicts (競合を解決)] をクリックします。
各サムネイルの詳細を確認するには、アセット名の横にある展開アイコンをクリックすると、競合ビューが開きます。 個々のサムネイルがより詳細に表示され、各チーム メンバーがアセットに適用した変更を簡単に確認することができます。
各サムネイルには次の 3 つのアイコンがあります。
フォーカス アイコン - ビューポート内のアセットを見つけてフォーカスします。
フォルダ アイコン - コンテンツ ブラウザのフォルダ内のアセットを表示します。
リンク アイコン - アセットに適用されたすべての変更と、この変更によって影響を受ける他のアセットを含む [Dependency Tree (依存関係ツリー)] を表示します。
このタブのアセット プレビュー ウィンドウの下部の [Summary (サマリー)] の横にある展開アイコンをクリックすると、[Conflict Details (競合の詳細)] パネルに変更のサマリーが表示されます。 このショートカットにより、自分が行った変更とチームメイトが行った変更の違いを確認することができます。 サマリーには、変更に関する次の情報が表示されます。
サイズ
アセット
変更日
スナップショットの説明
スナップショット ID
自分の変更や他のユーザーの変更を選択する
チームメイトのアセットの変更をビューポートで確認するには、チームメイトの変更を表すサムネイルを選択し、[Conflict Resolution] タブの下部にある [Reload level to preview] ボタンをクリックします。 チームメイトがアセットに加えた変更がビューポートに表示されます。
サムネイル上のアイコンを使用するか、[Conflict Details] パネルを開いて、チームメイトがアセットに加えた変更を確認しながら、アセットの変更に関する詳細を確認することができます。
自分の変更を表示するには、自分の変更を表すサムネイルをクリックし、[Conflict Resolution] タブの下部にある [Reload level to preview] ボタンをクリックします。 この操作により、ビューポートでアセットの変更を並べて比較することができます。
昇格させるアセットの変更を決定し、その変更を表すサムネイルを選択して、タブの下部にある [Resolve Conflict] ボタンをクリックします。 スナップショットの説明ウィンドウが開きます。 競合の解決と昇格するスナップショットの簡単な説明を追加し、[Submit (サブミット)] をクリックしてスナップショットを [Snapshot History] リストに追加します。
Verse で自分の変更や他のユーザーの変更を選択する
Verse の競合はサムネイルとして表示されないため、[Snapshot History] リストで見つけることができません。 チームメイトが自分より先にファイルに変更を加えていた場合、Visual Studio Code を開いて、先に最新の状態に同期することなくファイルに変更を加えると、競合状態になります。
UEFN 画面の下部にある [Check in Changes] または [Sync to Latest] ボタンをクリックすると、競合を警告するポップアップ メッセージが表示されます。 [Review Conflict] または [Review (確認)] アイコンをクリックして、[Conflict Resolution] タブを開きます。
[Conflict Resolution] タブで [Resolve in VS Code (VS コードで解決)] ボタンをクリックします。 競合している Verse ファイルが Visual Studio Code で 3 つの状態を表示するマージ ウィンドウで開きます。 1 つの変更は左側の緑色で、もう 1 つの変更は右側の紫色で、ファイルの現在の状態はウィンドウの下側の黄色で表示されます。
画像をクリックすると拡大表示されます。
Verse ファイルの左、右、および現在の状態で変更のオーバーフロー メニューをクリックすると、さまざまなオプションが表示されます。
左側で [Accept All Changes from Left (左のすべての変更を受け入れる)] を選択すると、左側の Verse ファイルへの変更を受け入れることができます。 右側では、[Accept All Changes from Right (右のすべての変更を受け入れる)] を選択して右側の Verse ファイルの変更を受け入れたり、左側または右側の変更を下側のベース ファイルと比較することができます。 現在のバージョンで [Reset (リセット)] を選択すると、ファイルをリセットすることができます。
競合を解決するには、ファイルを選択して変更を受け入れ、ファイルが解決された状態にします。 次に、[Resolve Conflict] ボタンをクリックして、プロジェクトに変更を保存します。 その後、スナップショットの作成と提出の URC ワークフローに進みます。