uVersion
日本語
ダウンロード →

Wiki

配布

パスパターンごとに、ソースリポジトリからターゲットリポジトリへファイル(プラグイン、共有コンテンツ)をコピーします。公開、リマッピング、ロックはスキップ。

はじめに

配布は、パスパターンに限定して、ソースリポジトリから ターゲットリポジトリへファイル(プラグイン、共有コンテンツパック)をコピーします。 ターゲットに新しいリビジョンを作成するため、通常の増分同期がコンテンツをクライアントへ伝播します。 これは、手作業のコピー&ペーストなしで、同じプラグインを複数のプロジェクト間で共有する手段です。

アクセスとロール

他のタブとは異なるアクセスモデル 配布は他のタブと同じようには制御されませんmanage_rules ケイパビリティが必要で、これはサーバー全体にわたって adminlead が保有します。ケイパビリティを一切保有しない project_admin は、アクセス できません。一方 lead は、任意のリポジトリを別の任意のリポジトリに接続できます。

リンクを作成する

1. Distribution タブを開く

Distribution タブは SERVER の列にあります:リンクは 2 つのリポジトリを 結び付けるため、PROJECT の列で選択したリポジトリには依存しません。右上の + New Link を クリックすると、New Distribution Link ウィンドウが開きます。

2. ソース、ターゲット、パスを選ぶ

Source Repository はファイルの取得元となるリポジトリ、Target Repository は 宛先のリポジトリです:選択したソースはターゲットの一覧から消え、リンクが自分自身に戻ることはできません。 Path Patterns1 行につき 1 パターンを取り(例: Plugins/MyPlugin/Content/SharedAssets/)、少なくとも 1 つが必要です:パターンが なければ何もコピーされません。

New Distribution Link ウィンドウ:Source Repository と Target Repository のメニュー、2 つのパターンが入力された Path Patterns(one per line)欄、そして Cancel と Create Link のボタン。

3. Create Link で確定する

リンクはただちに一覧に表示されます。同じ 2 つのリポジトリ間にすでに存在するリンクは拒否されます(競合): 2 つ目を作成するのではなく、既存のものを編集してください。

パスパターン

パターンは、パスのどこかに現れればそのパスにマッチします(「含む」型の検索)。 したがって Plugins/uVersion パターンは、プロジェクトの接頭辞に関わらず DefaultProject/Plugins/uVersion/Source/Foo.cpp にマッチします。末尾のスラッシュは何も変えません。

公開する

1. リンクとそのアクションを見つける

各リンクは一覧の 1 行を占めます:source → cible、ピル表示されたそのパターン、作成者、そして 最終公開日。アクションは行の右側にまとめられています:Show pending files(ファイルアイコン)、 Publish history(時計)、Publish、リンクを有効化/無効化するスイッチ、 そして削除。

2. 何が送られるかを確認する

Show pending files は行の下に、差分のあるファイルの一覧を、そのソースリビジョンとともに展開し、 タイトルに合計を表示します(Pending Files (N))。各ファイルはその状態を持ちます:newmodifiedlocked。すべてが最新であれば、パネルにその旨が表示されます。

リンクの行の下に展開された Pending Files パネル:new、modified、locked と印が付けられたパスとそのソースリビジョン、そして一覧の上に前回の公開が残した緑のバナー。

3. 公開する

Publish ボタンがコピーを実行します。緑のバナーに 「Published: X source files found, Y updated, Z skipped (locked), W unchanged」と要約されます。リンクが無効な 間はボタンが無効化され、無効なリンクを公開すると明示的なエラーが返されます。

ターゲット内でロックされたファイルはスキップされ、上書きされません。内容が 同一(同じハッシュ)のファイルは変更なしとして数えられ、スキップされます。公開はアトミックです (単一のトランザクション)。

Publish history(時計)はその後、直近 50 件の公開を示します:更新およびスキップされたファイル数、 実行者、そして日時。

リマッピングとリビジョン

パスはターゲット向けに書き換えられます:uVersion はマッチしたパターンより前の部分を取り除き、 次にターゲット上で検出された接頭辞を付加します。例:ソース DefaultProject/Plugins/uVersion/foo.cpp、パターン Plugins/uVersion、ターゲット接頭辞 CineDroneStudio/CineDroneStudio/Plugins/uVersion/foo.cpp。ターゲット接頭辞は ターゲット内の既存ファイルから推定されます(プロジェクトサブフォルダの有無にかかわらず対応)。

リビジョン番号 配布されたリビジョンは、増分同期が取得できるように、ターゲットの現在のリビジョンより上のグローバルカウンターを 使用します。そのためファイルごとの履歴が「飛ぶ」ことがあります(例:rev 1 の次が rev 200)が、これは見た目上の ものです。チャンクは共有されます(データの重複はなく、単なる参照の増分)。

よくある落とし穴

「Publish」がグレーアウトしている

リンクが無効です。まず有効化してください。無効なリンクを公開すると明示的なエラーが返されます。

ターゲットでファイルが更新されない

ターゲット側でロックされているか(その場合はスキップされ「locked」として数えられます)、内容がすでに同一である か(「unchanged」として数えられます)のいずれかです。公開の要約と pending files の一覧を確認してください。

project_admin がタブを見られない

これは意図的です:配布には manage_rules(admin または lead)が必要です。project_admin は、たとえ 自分自身のリポジトリであってもアクセスできません。