Nintendo MessageStudio ヘルプ

# 競合とマージ

## 競合とは

競合は、あなたが編集した箇所が別の場所でも編集された状態を指します。 同じファイルが編集された場合でも編集箇所が異なる場合はMessage Studioが自動でマージ(すり合わせ作業)を行いますが、 編集箇所が同じだった場合は手動でマージを行う必要があります。

競合が発生すると、プロジェクトエクスプローラ上で競合が発生しているコンテンツファイルに警告マークがつきます。 これらのファイルについては手動でマージ作業を行う必要があります。 |

メッセージファイル（*.mstxt）に関して言えば、同じセルが同時に複数の場所で編集された場合、競合が発生します。 １つのファイルが同時に複数の場所で編集されていても、各々が編集したセルが異なっていれば競合は起こりません。

## マージ

### 概要

マージとは、１つのファイルが同時に複数の場所で編集された場合、それらの編集箇所をうまく結合する作業のことをいいます。
MessageStudioとMMSとでは「マージ」の意味するところが違っています。
MessageStudioとMMSでのマージの違いはMMSを利用されていた方へを参照してください。

### 自動マージ

１つのファイルが同時に複数の場所で編集された場合でも、編集箇所が異なっていれば（メッセージファイルでは編集セルが異なっていれば）、 MessageStudioが自動でマージ作業を行います。 この自動マージ作業は「更新」時に行われます。 編集箇所が同じだった場合のみそのファイルは競合状態となり、以下の手動マージ作業を行う必要があります。

### 手動マージ

競合状態のファイルには、プロジェクトエクスプローラ上で図のような警告マークがつきます。 |

これらのファイルをダブルクリックするとウインドウが開き、マージ作業が開始されます。手動マージには３つの方法があり、場合に応じてどれか１つを選択します。

方法 | 説明
--- | ---
競合を編集する | このファイルの競合箇所１つ１つに対してマージ作業を行います。競合を１つ１つ確認しながらマージできるので最も安全なマージ方法となります。この方法の詳細については「競合を編集する」を参照してください。
サーバのファイルを使用 | あなたが編集したファイルを破棄し、サーバのものを使用します。 この方法を利用すると、サーバからデータを取得してから今までに行ったあなたの編集はなかったことになりますので注意してください。
自分のファイルを使用 | サーバのファイルを破棄し、あなたが編集を行ったファイルに置き換えます。 この方法を利用すると、あなたがサーバからデータを取得して以後、別のユーザによって変更された箇所がすべてなかったことになりますので注意してください。 競合の解決方法としてはあまり推奨できるやり方とはいえません。
キャンセル | マージ作業を保留します。ただし、競合状態は早々に解決することをお勧めします。

## マージツール

### 概要

各セルの競合を解決するには、下図の専用の手動マージツールを使用します。ここでは手動マージツールの使用方法を説明します。

### セルをマージする

図のように、競合が起こっているセルにはピンク色がついています。 |

競合が起こっているセルをダブルクリックすると下図のウインドウが開き、マージ作業を行うことができます。左側の「自分の内容を使用」ボタンを押すと、そのセルでは自分の編集内容が使用され、別の場所で行われた編集を破棄します。右側の「サーバ上の内容を使用」ボタンを押すと、そのセルでは別の場所での編集内容が使用され、自分の編集は破棄されます。

マージ作業が行われたセルは、そのマージ方法によって色が変わります。以下の表はその説明となります。

状態 | 意味 | 説明
--- | --- | ---
| 未マージ | まだマージ作業を行っていないセルです。
| 自分のものを使用 | 自分の編集内容を使用し、別の場所で行われた編集を破棄します。
| サーバのものを使用 | 別の場所で行われた編集内容を使用し、自分の編集を破棄します。

全ての競合を解決したらウインドウ左上の「競合解決」ボタンを押します。未解決のセルが残っている場合はマージ作業を続けるように促されます。 |

### ボタンの説明

マージツールには、マージ作業を円滑に行うための操作を行うボタンが配置されています。ここでは各ボタンの説明を行います。 |

ボタン | 意味 | 説明
--- | --- | ---
| 競合解決 | このファイルの競合が解決したものとし、マージ作業を終了します。全てのセルのマージ作業が完了したときに押します。未解決のセルが残っている状態でこのボタンを押した場合は、マージ作業を続けるように促されます。
| 元に戻す | １つ前のマージを元に戻します。
| やり直す | 「元に戻す」操作によって取り消されたマージをやり直します。
| 前の競合箇所へ | 前の競合箇所へ移動します。
| 次の競合箇所へ | 次の競合箇所へ移動します。

- はじめに
- Message Studioの基礎
  - ゲーム製作のフロー
  - プロジェクトファイルについて
  - プロジェクトエクスプローラの操作
  - ウインドウ操作
  - 言語設定
  - カラーの設定
  - 属性の設定
- メッセージ編集
  - 基本操作
  - テキストの種類
  - クリップボードを利用した操作
  - 言語セルステータス
  - 表示のカスタマイズ
  - メッセージ一覧画面のTips
- タグ
  - 概要
  - タグを用いた編集
  - タグのソース文字列
  - タグ比較について
- 検索機能
  - 概要
  - 簡易検索
  - 詳細検索
  - 正規表現
- スペルチェック
  - スペルチェックについて
  - スペルチェックの利用方法
- ロールとパーミッション
  - 概要
  - ロールの追加とパーミッションの設定
  - ロールの選択
- メッセージの統計情報
  - 統計情報について
  - 統計情報の利用方法
- スタイル機能と幅計算
  - スタイルと幅計算について
  - テキスト幅の全体チェック
  - レンダリング方式について
  - スタイルの設定方法
- フォント
  - フォント機能の概要
  - フォントに関するワークフローについて
  - フォントの設定
- チーム管理機能
  - 概要
  - ファイル管理のされ方
  - チーム管理機能を利用する
  - 基本操作
  - コミットログを表示する
  - 差分(diff)を表示する
  - 競合とマージ
  - プロキシサーバの設定
  - サーバーの設定
- メタ情報の設定
  - メタ情報の設定について
  - 設定可能なメタ情報一覧
- リソースファイル関連
  - リソースについての概要
  - リソースファイルを出力する
  - 出力設定を行う
  - ビルドイベントについて
  - 共通のバイナリフォーマット
  - メッセージバイナリフォーマット
  - フローチャートバイナリフォーマット
  - プロジェクトバイナリフォーマット
    - プロジェクトバイナリフォーマット
    - カラー情報
    - コンテンツ情報
    - 属性情報
    - タグ情報
    - スタイル情報
  - タグについて
- マクロ文字列展開機能
  - マクロ文字列とは
  - 利用可能なマクロ一覧
- コマンドライン関連
  - コマンドライン制御について
  - /convertスイッチについて
- プラグインについて
  - プラグインの概要
  - プラグインの種類について
- プラグインの作成方法
  - 単純なプラグイン作成チュートリアル
  - 開発環境を利用しない作成方法
  - サンプルについて
- Message Studioのアセンブリ設定
  - Caspol：アセンブリセキュリティ設定
  - Ngen：ネイティブイメージ生成
- XML仕様
  - 概要
  - プロジェクトファイル（.msproj）のXML仕様
  - メッセージファイル（.mstxt）のXML仕様
- libmsについて
  - 概要
  - コンパイルの仕方
- 共通の関数
  - LMS_SetMemFuncs
- メッセージに関する関数
  - LMS_InitMessage
  - LMS_CloseMessage
  - LMS_SearchMessageBlockByName
  - LMS_GetMessageBlockInfoByName
  - LMS_GetTextNum
  - LMS_GetTextIndexByLabel
  - LMS_GetText
  - LMS_GetTextSize
  - LMS_GetTextByLabel
  - LMS_GetLabelByTextIndex
  - LMS_GetTextStyle
  - LMS_GetTextStyleByLabel
  - LMS_GetAttributeSize
  - LMS_GetAttribute
  - LMS_GetAttributeText
- フローチャートに関する関数
  - LMS_InitFlowchart
  - LMS_CloseFlowchart
  - LMS_GetNodeNum
  - LMS_GetEntryNodeIndex
  - LMS_GetNodeDataPtr
  - LMS_GetFlowNodeIndex
  - LMS_GetCaseIndexesFromBranchNode
  - LMS_GetFlowParamText
- プロジェクトに関する関数
  - LMS_InitProject
  - LMS_CloseProject
  - LMS_SearchProjectBlockByName
  - カラー情報に関する関数
    - LMS_GetColorIndexByName
    - LMS_GetColor
    - LMS_GetColorByName
    - LMS_GetColorNum
  - コンテンツ情報に関する関数
    - LMS_GetContentsNum
    - LMS_GetContentPath
  - 属性情報に関する関数
    - LMS_GetAttrInfoIndexByName
    - LMS_GetAttrType
    - LMS_GetAttrTypeByName
    - LMS_GetAttrOffset
    - LMS_GetAttrOffsetByName
    - LMS_GetAttrListItemName
    - LMS_GetAttrListItemNameByName
    - LMS_GetAttrNum
    - LMS_GetAttrListItemNum
  - タグ情報に関する関数
    - LMS_GetTagGroupName
    - LMS_GetTagName
    - LMS_GetTagParamName
    - LMS_GetTagParamType
    - LMS_GetTagListItemName
    - LMS_GetTagGroupNum
    - LMS_GetTagNum
    - LMS_GetTagParamNum
    - LMS_GetTagListItemNum
  - スタイル情報に関する関数
    - LMS_GetStyleIndexByName
    - LMS_GetRegionWidth
    - LMS_GetRegionWidthByName
    - LMS_GetLineNum
    - LMS_GetLineNumByName
    - LMS_GetFontIndex
    - LMS_GetFontIndexByName
    - LMS_GetStyleNum
- 扱うファイルの拡張子一覧
- よくある質問