メインラインブランチの特定
プロジェクトのファイルを表示すると、プロジェクトのブランチリストが最初に表示されます。これらのブランチはアルファベット順に表示されますが、メインブランチについては、リストの先頭に太字で表示されます。プロジェクトのメインライン内にREADME Markdownファイルが存在する場合、プロジェクトの概要ページがデフォルトで表示されます。Swarmの管理者は、この動作を無効にすることができます。詳細については、「プロジェクトのReadmeファイル」を参照してください。
Swarmは、ブランチ名のリストを使用して、どのプロジェクトブランチをメインブランチとして使用するか、どのMarkdownファイルをプロジェクトの概要ページで使用するかを判断します。mainlines配列では、正規表現を使用することができます。詳細については、「正規表現」を参照してください。デフォルトの名前は、main、mainline、master、trunk です。Swarmが、プロジェクトのメインラインブランチとMarkdownファイルをどのように検索するかについては、以下の「プロジェクトのメインラインとREADMEファイルのチェック処理」を参照してください。
デフォルト名のmain、mainline、master、trunk は、Swarm内でハードコーディングされるため、これらの名前を配列に追加する必要はありません。Swarmは常に、正確に一致する名前をブランチ名から検索します。
構成情報を変更しても、構成キャッシュを再ロードしない限り、その構成情報がSwarmで使用されることはありません。構成キャッシュを再ロードすると、変更した構成情報がSwarmで強制的に使用されます。Swarm構成キャッシュを再ロードするには、admin ユーザまたはsuper ユーザでなくてはなりません。[ユーザID]ドロップダウンメニューに移動して[システム情報]を選択し、[キャッシュ情報]タブをクリックしてから[構成の再ロード]ボタンボタンをクリックします。
これらの名前は、ローカルブランチの命名規則に合わせて変更することができます。以下に、名前の構成に関するコードブロックの例を示します。
<?php
// this block should be a peer of 'p4'
'projects' => array(
'mainlines' => array(
'stable', 'release', // 'main', 'mainline', 'master', and 'trunk' are hardcoded, there is no need to add them to the array
),
),
正規表現
mainlines配列では、有効なPHP正規表現を使用することができます。メインブランチとして使用する複数のプロジェクトにわたって多数の類似したブランチ名が存在する場合は、正規表現を使用すると便利なことがあります。間違ったブランチを誤ってメインラインブランチとして指定することがないよう、注意して正規表現を使用してください。
Swarmは、正規表現の先頭に「^」という文字を追加し、正規表現の末尾に「$」という文字を追加します。例えば、「^your-reg-ex-pattern$」のようになります。正規表現を作成する場合は、この点に注意してください。
- 正規表現を使用する前に、正規表現を使用した場合の結果をテストすることができます。詳細については、https://regex101.com/を参照してください。
- 正規表現では、大文字と小文字が区別されます。
正規表現の例
便利な正規表現の例を以下に示します。
完全一致:
「mymainbranch」と指定すると、「mymainbranch」という名前のブランチがメインラインブランチになります。
mainlines配列で指定されているデフォルトのブランチ名に一致:
「」(空のmainlines配列)と指定すると、デフォルトのブランチ名(main、mainline、master、trunk)のいずれかに正確に一致するブランチがメインラインブランチになります。
前方一致:
「stable.*」と指定すると、名前が「stable」で始まるブランチがメインラインブランチになります。
例えば、以下のブランチがメインラインブランチになります。
stablecode-01、stable2019_2、stable_branchxyz
後方一致:
「.*mastprj」と指定すると、名前が「mastprj」で終わるブランチがメインラインブランチになります。
例えば、以下のブランチがメインラインブランチになります。
productxy-mastprj、assets_mastprj、project07mastprj
末尾が数値:
「.*[0-9]+」と指定すると、名前が数値で終わるブランチがメインラインブランチになります。
例えば、以下のブランチがメインラインブランチになります。
branch03、product-10、stable22、main_123456
名前に含まれている文字列が一致:
「.*main.*」と指定すると、名前に「main」という文字列が含まれているブランチがメインラインブランチになります。
例えば、以下のブランチがメインラインブランチになります。
swarm-main-branch、branchmain_22、main05、assetmain-brnch
プロジェクトのメインラインとREADMEファイルのチェック処理
Swarmは、アルファベット順にプロジェクト内のブランチをチェックします。
Swarmは以下の手順で、プロジェクトのメインラインブランチとREADME Markdownファイルを検索します。
- Swarmは、プロジェクト内のブランチをアルファベット順に確認し、mainlines配列で指定されているブランチ名に一致するブランチを検索します。検索結果には、デフォルト名が含まれます。
- 一致するブランチが見つかった場合、Swarmは、プロジェクトページにそのブランチをメインラインブランチとして表示します。
- ブランチにREADME Markdownファイルが含まれている場合は、そのファイルがプロジェクトの概要ビューで使用されます。
- ブランチにREADME Markdownファイルが含まれていない場合、Swarmは手順3に進みます。
- Swarmは、残りのブランチから、mainlines配列で指定されているブランチ名に一致するブランチを探します。
- READMEファイルが見つかった場合、Swarmはそのファイルをプロジェクトの概要ページで使用し、ブランチのチェック処理を終了します。
- READMEファイルが見つからなかった場合、mainlines配列で指定されているブランチ名に一致するブランチ内でREADMEファイルが見つかるまで、またはすべてのプロジェクトブランチのチェックが完了するまで、この手順が繰り返し実行されます。
- README Markdownページが見つからなかった場合、プロジェクトの概要ページは表示されません。