Wiki
配布
パスパターンごとに、ソースリポジトリからターゲットリポジトリへファイル(プラグイン、共有コンテンツ)をコピーします。公開、リマッピング、ロックはスキップ。
はじめに
配布は、パスパターンに限定して、ソースリポジトリから ターゲットリポジトリへファイル(プラグイン、共有コンテンツパック)をコピーします。 ターゲットに新しいリビジョンを作成するため、通常の増分同期がコンテンツをクライアントへ伝播します。 これは、手作業のコピー&ペーストなしで、同じプラグインを複数のプロジェクト間で共有する手段です。
アクセスとロール
manage_rules
ケイパビリティが必要で、これはサーバー全体にわたって admin と lead
が保有します。ケイパビリティを一切保有しない project_admin は、アクセス
できません。一方 lead は、任意のリポジトリを別の任意のリポジトリに接続できます。
リンクを作成する
1. Distribution タブを開く
Distribution タブは SERVER の列にあります:リンクは 2 つのリポジトリを 結び付けるため、PROJECT の列で選択したリポジトリには依存しません。右上の + New Link を クリックすると、New Distribution Link ウィンドウが開きます。
2. ソース、ターゲット、パスを選ぶ
Source Repository はファイルの取得元となるリポジトリ、Target Repository は
宛先のリポジトリです:選択したソースはターゲットの一覧から消え、リンクが自分自身に戻ることはできません。
Path Patterns は 1 行につき 1 パターンを取り(例:
Plugins/MyPlugin/、Content/SharedAssets/)、少なくとも 1 つが必要です:パターンが
なければ何もコピーされません。
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))。各ファイルはその状態を持ちます: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。ターゲット接頭辞は
ターゲット内の既存ファイルから推定されます(プロジェクトサブフォルダの有無にかかわらず対応)。
よくある落とし穴
「Publish」がグレーアウトしている
リンクが無効です。まず有効化してください。無効なリンクを公開すると明示的なエラーが返されます。
ターゲットでファイルが更新されない
ターゲット側でロックされているか(その場合はスキップされ「locked」として数えられます)、内容がすでに同一である か(「unchanged」として数えられます)のいずれかです。公開の要約と pending files の一覧を確認してください。
project_admin がタブを見られない
これは意図的です:配布には manage_rules(admin または lead)が必要です。project_admin は、たとえ
自分自身のリポジトリであってもアクセスできません。