チーム開発機能

チーム開発機能とは

チーム開発機能とは、複数人によるサービス開発をスムーズに行うことができるように用意された拡張機能群です。
統合開発環境(IDE)やバージョン管理システムをベースに作られているため、これらの製品を使用したことがある開発者向けの機能となります。

チーム開発機能の有効化

チーム開発機能はデフォルトでは無効になっています。
有効にする場合は、コントロールパネルの[DataSpiderServerの設定]-[チーム開発]タブで、[チーム開発機能を有効にする]にチェックを入れて、クライアントに再ログインしてください。

チーム開発機能の特徴

チーム開発機能を有効にすると、以下の機能を使用できます。
  1. プロジェクトのローカル保存
  2. プロジェクトのサーバへのコミット
  3. プロジェクト/スクリプトの競合検出
  4. サーバプロジェクトの状態をローカルプロジェクトに反映
  5. ローカルスクリプトの履歴管理
  6. プロジェクトへのコメントとタグの設定

プロジェクトのローカル保存

プロジェクトをローカルに保存します。
ローカルに保存することで、チームで同一のプロジェクトを編集していても、プロジェクトの保存時にほかのチームメンバーの変更を上書きしてしまうことがなくなります。
また、副次的な利点として、こまめにプロジェクトを保存しても更新されるのはローカルのプロジェクトであるため、サーバにあるプロジェクトの肥大化をある程度防ぐことができます。

ローカルにのみ保存され、サーバにコミットされていないプロジェクト/スクリプトは、プロジェクトエクスプローラ上でローカル保存状態マーク(「>」)が左側に表示されて区別されます。

DataSpider Studioでは、Studio稼働OS上にユーザ単位で保存します。
プロジェクトを開く際には、ローカルプロジェクトを開きます。
チーム開発機能が無効の場合は、サーバに保存されているプロジェクトを開きます。そのため、チーム開発機能の有効時にローカル保存状態のプロジェクトが存在する場合、チーム開発機能を無効にして同一のプロジェクトを開くと、ローカルプロジェクトの状態は破棄されます。

プロジェクトのサーバへのコミット

ローカル保存されたプロジェクトをサーバにコミットします。
サーバにコミットすることで、ローカルプロジェクトとサーバプロジェクトの状態が一致し、変更した内容がほかのチームメンバーから参照可能となります。

コミットは、以下の順序で行われます。
以下の流れの中でコンフリクトが検出された場合、コンフリクトを解決しないとサーバにコミットすることはできません。
コンフリクトについては、「プロジェクト/スクリプトの競合検出」を参照してください。
  1. プロジェクトのコンフリクトを確認
    → コンフリクトが検出された場合、プロジェクトのコンフリクトが発生
    → コンフリクトが検出されなかった場合、2.へ進む

  2. 以下のi.とii.をすべてのスクリプトで実施
    1. スクリプトのコンフリクト有無を確認
    2. コンフリクトしていないスクリプトの更新(サーバスクリプトの状態をローカルスクリプトに反映)
    → コンフリクトが検出された場合、スクリプトのコンフリクトが発生
    → コンフリクトが検出されなかった場合、3.へ進む

  3. サーバへコミット
コミットの前に必ずフォルダ/スクリプト単位で更新を行うため、ローカルで変更していないスクリプトをサーバに上書きしてしまうということがなくなります。

コミット時には、「プロジェクトのコミット画面」が表示されます。
項目の説明
名前 説明 備考
コメント コメントを入力します。  
タグ タグを入力します。  
コミット対象スクリプト一覧/スクリプト コミットするスクリプトの名前が表示されます。  
コミット対象スクリプト一覧/操作 コミットするスクリプトの操作が表示(追加・更新・削除)されます。  

コミットが完了すると、プロジェクト/スクリプトに付与されたローカル保存状態マーク(「>」)の表示が消えます。

プロジェクト/スクリプトの競合検出

コンフリクトとは、プロジェクト構造の変更やスクリプト内容の変更などの作業が、複数のチームメンバー間で競合した状態を表します。
コンフリクトが検出された場合、コンフリクトを解決しないとサーバにコミットすることはできません。
これは、サーバのプロジェクト/スクリプト内容をローカルの内容で不用意に上書きしてしまうということを防ぐためです。

コンフリクトの状態は以下の2パターンが存在します。

プロジェクトのコンフリクト

プロジェクトの変更が、ほかのチームメンバーと競合した状態を表します。
プロジェクトのコンフリクトは、プロジェクトをコミットする際に、ほかのチームメンバーによってサーバのプロジェクト構造が変更されていた場合に発生する可能性があります。
該当するプロジェクト構造の変更は以下の通りです。 プロジェクトのコンフリクトを発生させないために、以下のようなルールを定義することを推奨します。 プロジェクトのコンフリクトが発生すると、「プロジェクトのコンフリクト」画面が表示され、ローカルプロジェクトとサーバプロジェクトの状態を確認することができます。
基本情報
名前 説明 備考
ローカルプロジェクト ローカルに保存されたプロジェクトの状態を表示します。  
サーバプロジェクト サーバにコミットされたプロジェクトの状態を表示します。  
ユーザ定義ロジック
名前 説明 備考
ローカルプロジェクト ローカルに保存されたローカルユーザ定義ロジックの状態を表示します。  
サーバプロジェクト サーバにコミットされたローカルユーザ定義ロジックの状態を表示します。  
コミット情報
名前 説明 備考
サーバ最終保存日時 サーバプロジェクトの最新バージョンの保存日時です。  
サーバ最終保存ユーザ サーバプロジェクトの最新バージョンのコミットユーザです。  
コメント サーバプロジェクトの最新バージョンのコメントです。  
ローカル保存日時 ローカルプロジェクトの最新バージョンの保存日時です。  

コンフリクト対象のプロジェクトは、プロジェクトエクスプローラ上でコンフリクトマーク(「」)が表示されます。
[ユーザ定義ロジック]タブは、ローカルとサーバでローカルユーザ定義ロジックの内容が異なる場合のみ表示されます。

プロジェクトのコンフリクトを解決するには、以下の方法があります。 サーバプロジェクトで上書きした場合には、退避させたプロジェクトと上書きしたプロジェクトの内容を比較し、必要に応じて自身が編集した箇所を抜き出してローカルプロジェクトに反映させた上で再度コミットしてください。

ローカルユーザ定義ロジックは、プロジェクトのコンフリクトに含まれますが、以下の方法により個別に解決することも可能です。 ローカルユーザ定義ロジックのコンフリクトを解決しても、ローカルユーザ定義ロジック以外のプロジェクトのコンフリクトは解決されません。別途、プロジェクトのコンフリクトメニューから解決してください。

スクリプトのコンフリクト

スクリプト内容の変更が、ほかのチームメンバーと競合した状態を表します。

スクリプトのコンフリクトが発生すると、「スクリプトのコンフリクト」画面が表示され、コンフリクト対象のスクリプト名を確認することができます。
コンフリクトの状態は、[スクリプトプロパティ]からも参照できます。
コンフリクト対象のスクリプトは、プロジェクトエクスプローラ上でコンフリクトマーク(「」)が表示されます。

スクリプトのコンフリクトを解決するには、以下の方法があります。 サーバスクリプトで上書きした場合には、退避させたスクリプトと上書きしたスクリプトの内容を比較し、必要に応じて自身が編集した箇所を反映させて再度コミットしてください。

スクリプトのコンフリクトを発生させないために、スクリプトのロック機能を使用し、ロックしたスクリプトの編集をほかのユーザに行わせないようにすることもできます。

サーバプロジェクトの状態をローカルプロジェクトに反映

ローカルプロジェクトの構造がサーバプロジェクトの構造と異なり、その内容がコンフリクトしない場合には、更新によってサーバプロジェクトの構造をローカルプロジェクトに上書きして反映させることができます。

更新は、以下の順序で行われます。
以下の流れの中でコンフリクトが検出された場合、コンフリクトを解決しないと更新することはできません。
コンフリクトについては、「プロジェクト/スクリプトの競合検出」を参照してください。
  1. プロジェクトのコンフリクトを確認
    → コンフリクトが検出された場合、プロジェクトのコンフリクトが発生
    → コンフリクトが検出されなかった場合、2.へ進む

  2. 以下のi.とii.をすべてのスクリプトで実施
    1. スクリプトのコンフリクト有無を確認
    2. コンフリクトしていないスクリプトの更新(サーバスクリプトの状態をローカルスクリプトに反映)
    3. → コンフリクトが検出された場合、スクリプトのコンフリクトが発生
    4. フォルダの更新(サーバフォルダの状態をローカルに反映)
更新はプロジェクトのサーバへのコミット時に自動で行われますが、単独で実行することもできます。
たとえば、既存のスクリプトの編集前に更新を行うことで、編集するスクリプトをサーバの最新状態に更新し、コミット時のスクリプトコンフリクトの可能性を低くするといった使用方法が考えられます。
(スクリプトのロックと組み合わせるとより効果的です。)

ローカルスクリプトの履歴管理

ローカルスクリプトの履歴を管理し、指定した履歴の状態に復元させることができます。
ローカル履歴の保持範囲は、最大50個、または最長7日間です。50個を過ぎた、もしくは7日間を過ぎたローカル履歴は自動で削除されます。
ローカル履歴はスクリプトの内部IDで管理します。そのため、スクリプトの移動や名前の変更を行った際でも、ローカル履歴は保持されます。
逆に、いったんスクリプトを削除し、再度同名のスクリプトを作成した場合、ローカル履歴は引き継がれません。

プロジェクトへのコメントとタグの設定

プロジェクトをサーバへコミットする際に、そのプロジェクトのバージョンに対して、コメントやタグ情報を設定することができます。
コメントはコミット時のログとして、タグは開発の区切り時などに設定することによりバージョンの管理がしやすくなります。

コメントの設定はプロジェクトのコミット時に、タグの設定はプロジェクトのコミット時、およびマイプロジェクトの[タグの設定]から行います。

仕様制限

注意事項