Main Content

SVN ソース管理の設定

プロジェクトで提供されている SVN の設定

プロジェクトでは、Subversion® (SVN) サンドボックスおよびリポジトリを Version 1.9 で使用するための [SVN] が提供されています。これには SVN の実装が含まれているので、この統合を使用するために SVN をインストールする必要はありません。

メモ

この統合は既存の SVN インストールを無視します。

プロジェクトの [SVN] では、セキュリティで保護されたログインがサポートされています。

プロジェクトで提供されている SVN のバージョンを使用するには、次のいずれかを行います。

  • MATLAB® の [ホーム] タブで [新規][プロジェクト][SVN から] を選択します。

  • または、スタート ページで [SVN からのプロジェクト] を選択してソース管理から取得するか、プロジェクトをソース管理に追加するときに、[ソース管理ツール] リストで [SVN] を選択します。

詳細は、以下を参照してください。

注意

プロジェクトのサンドボックス フォルダーはローカル ハード ディスクに配置してください。ネットワーク フォルダーを SVN で使用すると、速度が低下し、信頼性も低下します。Windows® ネットワーク ドライブを使用すると、SVN の移動操作により、ファイル ブラウザーに表示されているファイルのステータスが誤って "存在しない" というステータスになる可能性があります。

プロジェクトの [SVN] を使用して新しいサンドボックスを作成すると、新しいサンドボックスはプロジェクトで提供されている最新バージョンの SVN を使用します。

ソース管理ツールの対象にユーザーのプロジェクトが含まれている場合は、以下のプロジェクト機能を使用できます。

ブランチからチェックアウトすることはできますが、プロジェクトの SVN ではブランチのマージはサポートされていません。ブランチのマージを実行するには、TortoiseSVN などの外部ツールを使用してください。モデル ファイルに対して diff を実行するときに比較レポートを生成するように TortoiseSVN を設定することで、比較およびマージにプロジェクト ツールを使用できます。比較レポートからの Simulink モデルのマージを参照してください。

Subversion は、MATLAB Online™ ではサポートされていません。

既にインストールされている SVN バージョンのプロジェクト SVN の設定

既にインストール済みの以前の SVN バージョンでプロジェクトを使用する場合は、既に SVN ソース管理下にあるフォルダー内に新しいプロジェクトを作成します。プロジェクトによって SVN が検出されます。

次に例を示します。

  1. Windows エクスプローラーから TortoiseSVN を使用してサンドボックスを作成します。

  2. MATLAB で、目的のフォルダー内に新しいプロジェクトを作成します。プロジェクトによって既存のソース管理が検出されます。サンドボックスがたとえば、Version 1.6 である場合、Version 1.6 のサンドボックスのままです。

メモ

ソース管理を使用する前に、モデル ファイルをツールに登録する必要があります。Subversion へのモデル ファイルの登録を参照してください。

プロジェクトでまだ提供されていない SVN バージョンのプロジェクト SVN の設定

1.9 より新しいバージョンの SVN を使用する必要がある場合は、[コマンド ライン SVN 統合 (互換モード)] を使用できますが、コマンド ライン SVN クライアントもインストールしなければなりません。

メモ

Version 1.9 より新しい SVN バージョンを使用する必要がある場合のみ、[コマンド ライン SVN 統合 (互換モード)] を選択します。それ以外の場合は、より多くの機能を備え、パフォーマンスが改善された、余分なコマンド ライン SVN クライアントのインストールが不要な [SVN] を使用してください。

コマンド ライン SVN 統合は、コマンド ライン インターフェイスをサポートする任意の Subversion (SVN) クライアントと通信します。

  1. コマンド ライン インターフェイスをサポートする SVN クライアントをインストールします。

    メモ

    コマンド ライン ツールをインストールするオプションを選択しない限り、TortoiseSVN ではコマンド ライン インターフェイスはサポートされません。代わりに、コマンド ライン インターフェイスをサポートする別の SVN クライアントをインストールすると、その後 Windows エクスプローラーから TortoiseSVN の使用を続行できます。メジャー バージョン番号が一致すること (たとえば、両方のクライアントとも SVN 1.7 であること) を確認してください。

    Subversion クライアントは、次の Web ページで見つけることができます。

  2. プロジェクトで、[コマンド ライン SVN 統合 (互換モード)] を選択します。

[コマンド ライン SVN 統合 (互換モード)] では、プロジェクトでファイル名を変更する際に、そのフォルダー名に @ 文字が含まれている場合、コマンド ライン SVN は @ シンボルの後ろにあるすべての文字をペグ リビジョン値として扱うため、エラーになります。

ヒント

以下のプロジェクト Web ページで、更新されたソース管理統合のダウンロードをチェックできます。https://www.mathworks.com/products/simulink/projects.html

Subversion へのモデル ファイルの登録

プロジェクトによって提供されている [SVN] 統合などの SVN を使用している場合は、モデル ファイルを登録しなければなりません。

モデル ファイル拡張子をバイナリとして登録しない場合、SVN は競合する Simulink® ファイルに注釈を追加して、automerge を実行しようとします。これによって、モデル ファイルが壊れるため、モデルを Simulink に読み込むことができなくなります。

SVN の使用時にこの問題を回避するために、ファイル拡張子を登録します。

  1. SVN の config ファイルの場所を特定します。これらの場所で次のファイルを探します。

    • Windows では C:\Users\myusername\AppData\Roaming\Subversion\config または C:\Documents and Settings\myusername\Application Data\Subversion\config

    • Linux® または Mac OS X では ~/.subversion

  2. config ファイルが見つからない場合は、新しく作成します。SVN config ファイルの作成を参照してください。

  3. 既存の config ファイルがある場合は、SVN が既にインストールされています。config ファイルを編集します。既存の SVN config ファイルの更新を参照してください。

SVN config ファイルの作成

  1. SVN config ファイルが見つからない場合は、以下の行を含むテキスト ファイルを作成します。

    [miscellany]
    enable-auto-props = yes
    [auto-props]
    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type= application/octet-stream
    *.mlapp = svn:mime-type= application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
  2. チェックイン時の破損を防ぐため、プロジェクト内で使用されていて、バイナリとして登録する必要のある他のファイル タイプを確認します。MEX ファイル (.mexa64.mexmaci64.mexw64)、.xlsx.jpg.pdf.docx などのファイルをチェックします。必要な各ファイル タイプの行を属性ファイルに追加します。次に例を示します。

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  3. config ファイルに名前を付けて、適切な場所に保存します。

    • Windows では C:\Users\myusername\AppData\Roaming\Subversion\config または C:\Documents and Settings\myusername\Application Data\Subversion\config

    • Linux または Mac OS X では ~/.subversion

SVN config ファイルを作成した後、SVN は新しいモデル ファイルをバイナリとして扱います。

リポジトリ内にモデルが既にある場合は、既にリポジトリ内にあるモデルの登録を参照してください。

既存の SVN config ファイルの更新

既存の config ファイルがある場合は、SVN が既にインストールされています。ファイルをバイナリとして登録するには、config ファイルを編集します。

  1. config ファイルをテキスト エディターで編集します。

  2. [miscellany] セクションを探し、次の行で auto-propsyes で有効になっていることを確認します。

    enable-auto-props = yes 
    この行がコメント化されていないこと (つまり、行の先頭が # でないこと) を確認します。config ファイルには、コメント アウトされた例の行を含めることができます。行の先頭に # 文字がある場合は、削除します。

  3. [auto-props] セクションを検索します。[auto-props] がコメント化されていないことを確認します。行の先頭に # 文字がある場合は、削除します。

  4. [auto-props] セクションの最後に以下の行を追加します。

    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type= application/octet-stream
    *.mlapp = svn:mime-type= application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
    これらの行により、SVN は競合時に MATLAB ファイルおよび Simulink ファイルに注釈を追加せず、automerge を行わなくなります。

  5. チェックイン時の破損を防ぐため、プロジェクト内で使用されていて、バイナリとして登録する必要のある他のファイル タイプを確認します。MEX ファイル (.mexa64.mexmaci64.mexw64)、.xlsx.jpg.pdf.docx などのファイルをチェックします。必要な各ファイル タイプの行を config ファイルに追加します。

    次に例を示します。

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  6. config ファイルを保存します。

SVN config ファイルを作成または更新した後、SVN は新しいモデル ファイルをバイナリとして扱います。

リポジトリ内にモデルが既にある場合は、次に説明するようにそれらを登録します。

既にリポジトリ内にあるモデルの登録

注意

SVN config ファイルを変更しても、SVN リポジトリに既にコミットされているモデル ファイルには影響ありません。モデルがバイナリとして登録されていない場合は、svn propset を使用して手動でモデルをバイナリとして登録します。

リポジトリ内のファイルを手動でバイナリとして登録するには、コマンド ライン SVN で次のコマンドを使用します。

svn propset svn:mime-type application/octet-stream modelfilename
コマンド ライン SVN クライアントをインストールする必要がある場合は、プロジェクトでまだ提供されていない SVN バージョンのプロジェクト SVN の設定を参照してください。

編集前にモデル ファイルを SVN で強制ロック

編集前にユーザーがモデル ファイルを確実にロックできるように、SVN を構成して指定されたファイル拡張子を読み取り専用にすることができます。SVN config ファイルを見つけるには、Subversion へのモデル ファイルの登録を参照してください。

この設定を行った後、プロジェクトを開いたときに SVN でモデル ファイルが読み取り専用に設定されるため、編集前に [ソース管理][ファイルをロック] を選択しなければなりません。この設定により、ファイルがロックされずにモデルの編集が行われることがなくなります。ファイルがロックされると、他のユーザーはファイルが編集中であると判断し、マージの問題を防ぐことができます。

  1. SLX ファイルを読み取り専用にするには、プロパティを SVN config ファイルに追加します。SLX ファイルをバイナリとして登録する [auto-props] セクションの次の行を見つけます。

    *.slx = svn:mime-type= application/octet-stream
    

  2. needs-lock プロパティを既存の slx 行の末尾に追加し、セミコロンで区切ります。この行は次のようになります。

    *.slx = svn:mime-type=application/octet-stream;svn:needs-lock=yes 
    プロパティは任意の順序で組み合わせることができますが、複数のエントリ (slx のエントリなど) はセミコロンで区切って 1 行で入力しなければなりません。

  3. config を有効にするには、サンドボックスを再作成します。

  4. モデル ファイルを編集する前に 「ファイルをロック] を選択しなければなりません。SVN ファイルのロックを参照してください。

マージの問題を解決する必要がある場合は、競合の解決を参照してください。

Subversion リポジトリの共有

リポジトリを共有する場合は、サーバーを設定しなければなりません。svnserve または Apache™ SVN モジュールが使用できます。次の Web ページを参照してください。

標準のリポジトリ構造

標準の tagstrunk および branches フォルダーをもつリポジトリを作成して、ファイルを trunk からチェックアウトします。Subversion プロジェクトでは、この構造を推奨します。次の Web ページを参照してください。

メモ

運用環境では、file:/// protocol を使用してファイル システムを経由するリモート リポジトリは使用しないでください。ファイル プロトコルは安全ではありません。同時アクセスによってリポジトリが破損する可能性があります。

この構造でリポジトリを作成した後、すべてのプロジェクト ファイルにタグを追加するには、[プロジェクト] タブの [ソース管理] セクションで、[タグ] をクリックします。プロジェクト ファイルのバージョンのタグ付けおよび取得を参照してください。

SVN 外部参照の管理

別のリポジトリまたは同じリポジトリの異なる部分にあるファイルをプロジェクトに取り込むには、SVN 外部参照を使用します。

  1. プロジェクトでプロジェクト フォルダーを右クリックし、[ソース管理][外部参照の管理] を選択します。

  2. [外部参照の管理] ダイアログ ボックスで [エントリの追加] をクリックします。リポジトリの場所を参照して確認したり、相対参照の形式やサブフォルダーを指定したり、HEAD ノードなどのリビジョンを選択したりできます。

  3. 外部参照を指定したら、[OK] をクリックします。[外部参照の管理] ダイアログ ボックスに外部参照の定義が表示されます。

    あるいは、[外部参照の管理] ダイアログ ボックスに svn:external 定義を入力するか貼り付けます。プロジェクトによって、SVN Version 1.6 準拠の外部参照の定義が適用されます。

  4. [セット] をクリックし、変更内容を確認して適用します。

  5. 外部ファイルを取得するには、[更新] をクリックしてサンドボックスを更新します。

2 人のユーザーがフォルダーの svn:external を変更すると、競合が発生する可能性があります。競合を解決するには、[すべてのファイル ビュー] で .prej ファイルを見つけて競合の詳細を調べます。[外部参照の管理] ダイアログ ボックスを開いて目的の svn:external を指定し、フォルダーを競合解決済みとしてマークして変更をコミットします。

関連する例

詳細