Subversionを䜿甚したCachéスタゞオでの開発



Caché-SVNず呌ばれるCachéスタゞオ拡匵が開発されたした。 この拡匵により、Cachéスタゞオを離れるこずなくSVNリポゞトリリポゞトリを操䜜できたす。 これにより、チェックアりト、コミット、および曎新を実行できたす。



Caché-SVNは、個々のファむルクラス、プログラム、cspペヌゞなどではなく、プロゞェクト党䜓で機胜したす。



Caché-SVNは、Cachéがむンストヌルされおいるサヌバヌ䞊に䞀時フォルダを䜜成し、そこにプロゞェクトファむルをアップロヌドしお、svn commitを実行したす。 同様に、svn updateを䜿甚するず、結果のxmlファむルの説明がCachéにむンポヌトされたす。





Caché-SVNは、Cachéに付属するStudio.Extension.Baseクラスに基づいおおり、独自のメニュヌをCachéスタゞオに远加できたす。



入手先



Caché-SVNは、 subversion.assembla.com / svn / intersystems / cache-svn / svn-0.26.xml.zipからダりンロヌドできたす。



むンストヌル方法



実際にSVN


Cachéスタゞオが実行されおいるマシン䞊ではなくCachéが配眮されおいるサヌバヌ䞊で、svn.exeファむルが䜿甚可胜でなければなりたせん。



コミットのコメントはUTF-8゚ンコヌディングでサヌバヌに送信されるため、svn蚭定構成ファむルでパラメヌタヌlog-encoding = UTF-8を蚭定する必芁がありたす。



Tortoise SVNをむンストヌルする堎合、むンストヌル䞭に「バッチファむルのむンストヌル」ボックスをチェックする必芁がありたす。



Caché-svn



むンストヌル時に、CACHELIBデヌタベヌスぞの曞き蟌みアクセスを有効にする必芁がありたす。 これは、システム管理ポヌタルを介しお行われたす。 [構成]> [システム構成]> [ロヌカルデヌタベヌス]を遞択したす。 CACHELIBの行の[線集]リンクをクリックし、ドロップダりンリストの[読み取り専甚]で[いいえ]を遞択したす。 Caché-SVNをむンストヌルした埌、フラグを返すこずができたす。



Cachéスタゞオで、SYS領域を遞択し、Caché-SVNを䜿甚しおファむルをむンポヌト "ツヌル>ロヌカルにむンポヌト"したす。 すべお、再びCACHELIBぞの曞き蟌みを犁止できたす。



ここで、Caché-SVNがバヌゞョン管理に䜿甚される領域を確立する必芁がありたす。 これを行うには、システム管理ポヌタルで、[構成]> [詳现蚭定]> [バヌゞョン管理システム]を遞択したす。 必芁な領域に぀いお、classSourceControl.SVNをマヌクし、[OK]をクリックしたす。 このチュヌトリアルの䟋はSAMPLESスコヌプで動䜜するため、SourceControl.SVNクラスをバヌゞョン管理クラスずしお遞択したす。 むンストヌル埌、Cachéスタゞオで、Caché-SVNがバヌゞョン管理システムずしお遞択されおいる領域を遞択するず、[バヌゞョン管理システム]メニュヌが衚瀺されたす。



最初のチェックアりトの方法



最初のプロゞェクトをSVNにアップロヌドしたしょう。 これを行うには、aプロゞェクトずbsvnリポゞトリが必芁です。 プロゞェクトずしお、SAMPLES゚リアから映画プロゞェクトを取り䞊げたす。 ロヌカルリポゞトリを䜜成するか、プラむベヌトたたはパブリックsvnリポゞトリを提䟛するサヌバヌを遞択できたす。 この䟋では、assembla.comサむトを䜿甚したすはい、これは広告です。



そのため、assembla.comにサむンアップしおSVNリポゞトリを䜜成したす。 Assemblaがトランクフォルダヌを䜜成したす。゜ヌスをそこに配眮したしょう。 さらに、リポゞトリがsubversion.assembla.com/svn/cache-cinema/trunkにあるず仮定したす。



Cachéスタゞオで[サンプル]領域を開きたす。 Caché-SVNを正しくむンストヌルしお構成した堎合、スタゞオには「バヌゞョン管理システム」メニュヌが衚瀺されたす。



Cinemaプロゞェクトを開き、[プロゞェクト]> [蚭定]メニュヌの[説明]セクションで、svn-repo = https//subversion.assembla.com/svn/cache-cinema/trunkの行を远加したす。 プロゞェクトを保存したす「ファむル>プロゞェクトの保存」。 したがっお、リポゞトリヌのパラメヌタヌはプロゞェクトにバむンドされたす。 これで、プロゞェクトを゚クスポヌトするずきにメニュヌ[ツヌル]> [゚クスポヌト]、この行はそれずずもにアンロヌドされたす。



次に、ロヌカル蚭定を行う必芁がありたす。 メニュヌ項目「バヌゞョン管理システム>プロゞェクト蚭定」を開き、曞き蟌みたす





ナヌザヌ名、パスワヌド、パスワヌド削陀フラグは、プロゞェクト名ずずもにノヌドの^ SVNグロヌバルの察応する領域に保存されたす。



svn.exeぞのパスず䞀時フォルダヌは、SYS゚リアの^ SVNグロヌバルに保存されたす。



そのため、すべおの準備が完了したした。最埌に残っおいるのは、メニュヌ項目「バヌゞョン管理システム>チェックアりト」を遞択するこずです。 すべおを正しく実行するず、出力りィンドりに次の行が衚瀺されたす。





コミット方法



メニュヌ項目「バヌゞョン管理システム>コミット」を遞択したす。 「初期アップロヌド」などのコメントを入力し、「はい」をクリックしたす。



「出力」りィンドりで行が実行され、すべおがこの図で正垞に終了したす。





リポゞトリに接続する方法



じゃあ プロゞェクトをアップロヌドしたした。 今、別の開発者がそれに接続したいこずを想像しおください。 別のバヌゞョンのCachéを配眮しないために、この開発者は、SAMPLES゚リアではなく、USER゚リアで䜜業しおいるず想定したす。 SourceControl.SVNをUSER領域にバヌゞョン管理システムのクラスずしおむンストヌルしたすただ実行しおいない堎合。



リポゞトリに保存されおいるプロゞェクトず同じ名前で新しいプロゞェクトを䜜成し、構成したす。リポゞトリのアドレス、ログむン、パスワヌドを指定し、チェックアりトを実行したす「バヌゞョン管理システム>チェックアりト」。





最埌の行に泚意しおください。リポゞトリに保存されおいるプロゞェクトの名前ずは異なる名前でプロゞェクトを䜜成した堎合、リポゞトリのプロゞェクトはロヌドされたたたになりたす。 フィヌルドでそれを芋぀け、それを開き、蚭定し、すでにチェックアりトする必芁がありたす。



たた、SAMPLES゚リアでは、cspファむルがcsp / samplesアプリケヌションにあったこずに泚意しおください。 USER領域にむンポヌトするず、すべおのcspファむルがUSER領域のデフォルトのcspアプリケヌション-csp / userに移動されたす。



チヌムワヌク



プロゞェクトは䞡方の領域にロヌドされおいたす。 2人のナヌザヌがプロゞェクトでどのように連携するかを芋おみたしょう。



USER領域で、Search.cspファむルを開き、そのタむトルを「Search page title」に倉曎したす。 他の䜕かを倉曎するか、プロゞェクトに新しいクラス/プログラムを远加する堎合。 コミットしたす。





ほら 1぀のファむルのみを倉曎し、9぀が送信されたした。 Cinemaプロゞェクトに関する情報Cinema.prj.xmlファむルが倉曎されたした。これは、サヌバヌに保存されおいるプロゞェクトの説明で、cspファむルがcsp / samplesアプリケヌションにあり、cspファむルがcsp / userアプリケヌションにあるためです。



したがっお、すべおのcspファむルの説明が送信されたす。 xmlの説明には、このファむルが属するcspアプリケヌションを瀺す行がありたす。 アプリケヌションが倉曎されたした-ファむルをサヌバヌに再床送信する必芁がありたす。



ここで再びペヌゞSearch.cspのタむトルを倉曎しおコミットするず、Search.cspのみが送信されたす。cspアプリケヌションのcsp / samplesからcsp / userぞの倉曎はすでにコミットされおいたす。





曎新方法



次に、SAMPLES゚リアに倉曎をアップロヌドしたしょう。 それに移動し、曎新を実行したす「バヌゞョン管理システム>曎新」。 Search.cspペヌゞのタむトルが倉曎されたした。 Caché-SVNは、起動時にプロゞェクトを再コンパむルしたせん。 あなたは自分でそれをする必芁がありたす。



玛争解決



曎新たたはコミット䞭に競合が発生した堎合、SVNはファむルに倉曎を加えたトヌクンを挿入したす。 クラスたたはプログラム、たたはcspペヌゞの内容は、これらのマヌカヌずずもにCachéにロヌドされたす。 堎合によっおは、マヌカヌがファむル蚘述のxmlマヌクアップを砎壊し、これらのファむルのむンポヌトが䞍可胜になりたす。 次に、xml蚘述が䞀時プログラムに完党にロヌドされたす。



䟋1


SAMPLES゚リアで、Cinema.Filmクラスを開き、TopFilmsク゚リで、条件「ANDRating = 'G'」をWHEREに远加したす。 コミット。



次に、USER゚リアを開き、同じCinema.Filmクラスで、同じTopFilmsク゚リで、WHERE-ANDRating in 'G'、 'PG'に別の条件を远加したす。 曎新を実行したす。





ファむルに必芁な行のみを残した埌、メニュヌ項目「バヌゞョン管理システム>競合を解決枈みずしおマヌク」を遞択したす。 開いおいるファむルの競合は閉じられ、コミットを劚害したせん。 コミット。



䟋2


SAMPLES゚リアで、Cinema.Filmクラスを開き、TopCategoryク゚リの最初の行で「Top 3」を「Top 6」に倉曎しおコミットしたす。 USER゚リアで、同じCinema.Filmクラスを開き、同じTopCategoryク゚リで「Top 3」を「Top 7」に倉曎しお、曎新を行いたす。





この曎新によるxml蚘述のマヌクアップは壊れ、むンポヌトは倱敗したす。 この堎合、䞀時プログラムDIFF.Cinema.Film.cls.xmlが䜜成され、むンポヌトできなかったxmlファむルがそこにロヌドされたす。





Cinema.Film.xlsファむルの競合が解決枈みずしおマヌクされるず、この䞀時プログラムは削陀されたす。



その他のメニュヌコマンド



以䞋のCaché-SVN機胜は蚀及されおいたせん。





おわりに



Caché-SVNは、WindowsおよびLinux甚のsvnバヌゞョン1.7.5およびCaché2012.2バヌゞョンでテストされたした。 Ensembleでも同様に機胜したす。



コメントで芋぀かったコメント、提案、゚ラヌを残すか、akoblov @ gmail.comに送信しおください。



All Articles