サイトコアのパッケージをインストールするときに、インストール先に同じアイテム(IDが一致するかパスも含めた名前が一致する)が存在する場合に、アイテムのインストール方法を指定するダイアログが表示されます。今回はそれぞれのオプションについての覚書を記載します。

検証環境

  • Sitecore CMS 6.6 Update-7

1.インストールオプションのまとめ

いきなりですが、アイテムがコンフリクトしたときのマージオプションの要約を記載します。Mergeオプションに関するそれぞれのSDN上の説明は次のURLを参照してください。

 Installation Options
http://sdn.sitecore.net/reference/archive/sc53%20end%20user/package_designer_sc6/adding%20items,%20files%20and%20security%20accounts/adding%20dynamic%20sources/editing%20the%20dynamic%20source/installation%20options.aspx

マージオプション 概要 サブアイテムへの影響
overwrite 該当アイテムはパッケージのアイテムで上書きされます。パッケージに含まれないサブアイテムは削除されます。 削除されます
merge-clear 該当アイテムはパッケージのアイテムで上書きされます。 維持されます
merge-append 該当アイテムに新しい数値バージョンを作成することでパッケージのアイテムの数値バージョンのアイテムを追加します。 維持されます
merge-merge 該当アイテムに同じ数値バージョンが存在すればその数値バージョンがパッケージのアイテムの数値バージョンの値で上書きされます。パッケージに存在しない数値バージョンのアイテムは変更されません。 維持されます
skip 該当アイテムはパッケージのアイテムの数値バージョンで上書きされません。 維持されます
site by side アイテム名が同じでテンプレートが異なる場合に選択可能になるオプションです。上書きを行わず、同じ名前でパッケージに含まれるアイテムが作成されます。 維持されます

次以降でそれぞれのオプションによる動作を確認していきます。

2. Overwrite オプション

Overwrite オプションの動作に関するデモを記載します。パッケージに含まれるアイテムには次のようにHome アイテムのみが含まれているとします。

インストール先のコンテンツツリーには下図のように HomeアイテムのTEST というサブアイテムが含まれているとします。

パッケージをインストールするときに、 Homeアイテムに対して アイテムのコンフリクトを解決するオプションを選択するときに Overwrite を選択したとします。

overwrite を選択した場合、コンフィルクとの発生したアイテム(Home)は上書きされます。サブアイテムはパッケージに含まれていたサブアイテムに置き換わります。パッケージにはHomeアイテムしか含まれていなかったので、インストール後は、下図のように Home アイテムのみが存在する結果になります。

3.Merge オプション

Mergeオプションはサブアイテムが維持されるオプションになります。3つの詳細なオプションの動作を確認してみます。

3.1 merge-clear

前提としてインストールパッケージには次のように HomeアイテムおよびTEST1というアイテムが含まれているとします。

インストール先のコンテンツツリーには HOMEアイテムとTEST2 というアイテムが含まれているとします。

パッケージをインストール時に、Homeアイテムにコンフィルクとが発生するためインストールの確認ダイアログが表示されます。このとき Merge の Clear オプションを選択して Apply to all ボタンをクリックします。

下図がパッケージインストール後のコンテンツツリーの内容になります。Merge Clear の場合は、同じアイテムが存在する場合はパッケージのアイテムで上書きされますが、パッケージに存在しないサブアイテムは維持されます。そのため、TEST2 というアイテムはインストール後も削除されず存在します。

3.2 Merge-Append オプション

Append オプションの動作も確認してみます。 パッケージには次のように Homeアイテムと TEST1 というアイテムが存在することとします。今回は検証用にTEST1アイテム表示名を フォルダ1 としています。

インストール先のコンテンツツリーのアイテムは次のようになっていたとします。HomeアイテムとサブアイテムにTEST1というアイテムが存在します。検証用にTEST1の表示名をフォルダ2としています。

上記の状態でパッケージをインストールしてみます。Homeアイテムがコンフィルクとを起こすのでインストールオプションを選択するダイアログで、 Merge の Append オプションを選択して Apply to all ボタンをクリックします。

インストール完了後のアイテムの構造は次のようになります。TEST1というアイテムの表示名はパッケージのTEST1の表示名 フォルダ1 になっていることがわかります。

HOMEアイテムの数値バージョンを確認すると、コンフリクトを起こしたアイテムの場合は数値バージョンを追加してパッケージのアイテムがインストールされていることが確認できます。

サブアイテムのTEST1アイテムの数値バージョンが追加されパッケージのアイテムの数値バージョンがインストールされていることがわかります。表示名フィールドもパッケージのTEST1アイテムの値(フォルダ1)で更新されているため、コンテンツツリー上のTEST1アイテムの表示名が フォルダ1 になっています。

3.3 Merge-Merge

Mergeオプション最後の Merge Merge オプションを使用してみます。パッケージのアイテムおよびインストール先のサイトコアのコンテンツリーともに次のようのあアイテムの構造になっているとします。パッケージにはHomeアイテムのみが含まれています。

ただし、数値バージョンには次のような違いがあります。インストール先のサイトコアのHomeアイテムには2つの数値バージョンが存在することとします。数値バージョン2のHomeアイテムの Title フィールドは Sitecore Version 2 という値が設定されています。

数値バージョン1にはTitleフィールドに Sitecore Version1 という値が設定されています。

一方、パッケージに含まれるHomeアイテムの数値バージョンは1つのみで、Title フィールドの値は Sitecore であるとします。

この状態でパッケージをインストールします。Homeアイテムがコンフリクトを起こすためインストールオプションを下図のように Merge Merge を選択します。

インストールが完了後、Homeアイテムの数値バージョンを確認すると、数値バージョンの数に違いがないことがわかります。

ただし、数値バージョン1のアイテムを表示すると Title フィールドが パッケージの Home アイテムの Title フィールドの値になっていることがわかります。

このようにMerge-Mergeオプションは重複している数値バージョンのアイテムのみを該当するパッケージの数値バージョンのアイテムで上書きを行うオプションになります。インストール先に存在するサブアイテムも維持されます。

4. Side by Side オプション

Side-by-Side インストールオプションは アイテムの名前が同じでテンプレートが異なるときに選択可能になるオプションになります。アイテムコンフリクト時に、名前が一致し、アイテムのIDが異なっていると下図のようにSide-by-Side というオプションが選択できるようになります。

Side by Side インストールを選択すると、下図のように既存のアイテムには変更が発生することなく同じ名前でパッケージのアイテムがインストールされます。同名のアイテムが2つ同じパスに存在することになります。

5. Skip

最後に 下図の Skip オプションの動作の確認になります。Skipオプションはオプション名の通り、単純にコンフリクトの発生したアイテムのインストールをスキップします。

6.まとめ

説明は以上となります。インストールオプションはややこしいので覚書としてオプションの動作の違いを記載しました。