[salesforce]Force.com開発におけるバージョン管理方法
アピリオさんのブログでまとめられていたので紹介させて頂きます。
Force.comによる開発においても、一般的な開発と同様にGitなりSubversionなどのリポジトリでバージョン管理ができるのですが、ここでForce.comの特性に合わせた一工夫が必要になります。ここで問題になるのは、「Salesforce組織そのものがバージョン管理システムとしての性質を持っており、Subversionのバージョン管理と競合してしまう」、という点です。
詳しくはアピリオさんのブログにまとまっていますが、Salesforce組織にファイルをデプロイする前には必ず最新のソースコードをSalesforce組織から直接取得する必要があるため、バージョン管理システム側から最新ソースコードを取得していると競合してしまうのです。
これを回避する手法の一つも紹介されています。
開発者それぞれが当該プロジェクト用の個別のDeveloperEdition組織をもちそこで開発を行う。そしてソース更新時にはSubversionへcommitする。Subversion側ではcommit時に自動的に本番組織のSandboxに自動デプロイするようにスクリプトを仕込んでおく、という形です。
このようにSubversionと開発組織とSandboxを分離することで競合を回避することができます。が、以下の点が課題として残ります。
- DeveloperEdition組織は容量が5MBと少ない。
- メタデータやオブジェクトの削除系の処理は手動メンテが必要(Subversionからのupdate時に自動削除はできない)
おそらく他にも方法があると思いますので、ご存じの方は是非教えて下さい。