Wiki
配布
パスパターンごとに、ソースリポジトリからターゲットリポジトリへファイル(プラグイン、共有コンテンツ)をコピーします。公開、リマッピング、ロックはスキップ。
はじめに
配布は、パスパターンに限定して、ソースリポジトリから ターゲットリポジトリへファイル(プラグイン、共有コンテンツパック)をコピーします。 ターゲットに新しいリビジョンを作成するため、通常の増分同期がコンテンツをクライアントへ伝播します。 これは、手作業のコピー&ペーストなしで、同じプラグインを複数のプロジェクト間で共有する手段です。
アクセスとロール
manage_rules
ケイパビリティが必要で、これはサーバー全体にわたって admin と lead
が保有します。ケイパビリティを一切保有しない project_admin は、アクセス
できません。一方 lead は、任意のリポジトリを別の任意のリポジトリに接続できます。
リンクを作成する
- Distribution タブ → New Link。
- Source Repository:ファイルの取得元となるリポジトリ。
- Target Repository:宛先リポジトリ(選択したソースはリストから除外されます。ソースと ターゲットを同一にすることはできません)。
- Path Patterns:1 行につき 1 パターン(例:
Plugins/MyPlugin/、Content/SharedAssets/)。少なくとも 1 つが必要です。 - Create Link で確定します。
同じ 2 つのリポジトリ間にすでに存在するリンクは拒否されます(競合)。各行には
source → cible、そのパターン、作成者、そして最終公開日が表示されます。
パスパターン
パターンは、パスのどこかに現れればそのパスにマッチします(「含む」型の検索)。
したがって Plugins/uVersion パターンは、プロジェクトの接頭辞に関わらず
DefaultProject/Plugins/uVersion/Source/Foo.cpp にマッチします。末尾のスラッシュは何も変えません。
公開する
各リンクに対して 3 つのアクションがあります:
- Show pending files(ファイルアイコン):差分のあるファイルを、 new、modified、locked の印とそのリビジョンとともに一覧表示します。
- Publish history(時計):直近 50 件の公開(更新/スキップ件数、実行者、日時)。
- Publish(送信):コピーを実行します。バナーに「ソースファイル X 件検出、Y 件更新、Z 件 スキップ(ロック済み)、W 件変更なし」と要約されます。リンクが無効な場合は無効化されます。
ターゲット内でロックされたファイルはスキップされ、上書きされません。内容が 同一(同じハッシュ)のファイルは変更なしとして数えられ、スキップされます。公開はアトミックです (単一のトランザクション)。
リンクを有効化/無効化したり、削除したりすることもできます。
リマッピングとリビジョン
パスはターゲット向けに書き換えられます: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 は、たとえ
自分自身のリポジトリであってもアクセスできません。