CakePHP初心者がSubversionを使う。

初心者がCakePHPを始める件、CakePHPガイドブックのサンプルをなぞる作業も終わり、いよいよ自分の思い描くウェブ・アプリの開発となります。
ここからは後戻りができない未知の領域。色々とイジっているうちに機能を壊してしまうこともあるでしょう。
かといって、バックアップとして「コピー ~ フォルダ(2)」を次々と作成していくのも馬鹿げている。
そこで以前より小耳に挟んでいたバージョン管理システム「Subversion」(Wikipedia)を使ってみることにしました。
色々と調べるとSubversionはファイルの改版(修正)ごとの差分を管理するシステムで、改版履歴を遡ってファイルを元に戻すことができ、また差分をサーバで管理するので複数人での共同作業でも更新衝突を防げるなど、現在のシステム開発には必須の存在のようです。
Subversionを使うにはサーバ(リポジトリ)とクライアントが必要で、Windows用クライアントソフトはTortoiseSVNが標準のようです。
TortoiseSVNのインストールと設定
サーバについては自分で立てる他に、サーバを提供しているサービスを利用することもできます。
比較検討の結果、小生はバックログを利用することにしました。
ここはBTS(Bug Tracking System)を中心に、Wiki、Subversionを提供しており、デザインや機能も洗練されていて非常に使いやすいです。
マニュアルも丁寧・親切。マニュアル・運用紹介 | バックログ
以下、試行錯誤して自分なりにまとめた手順を画面キャプチャで紹介します。
興味・関心の無い方はスルーの方向で。
参考
hiromasa.zone :o) >> TortoiseSVN でファイルのバージョン管理をしてみる (2)
人力検索はてな(「はてな検索」で質問した。たいへん助かった)


1.TortoiseSVNのリポジトリブラウザでサーバに「trunk」(「tags」、「branches」)ディレクトリを作成。
subversion0.gif
trunkが更新版、tagsがある時点のまとまり、branchesが枝分かれ版として、ディレクトリの作成が推奨されているようです。
2.開発を進めるappフォルダをコピーしてapp_bkを作成。appフォルダ自体は空にする。
subversion1.gif
3.appフォルダに対して「SVNチェックアウト」を行い作業スペースとして認識させる。
subversion2.gif
リポジトリは先ほど作成した「trunk」を指定(はてなさんに聞いて理解できた手順)。
subversion3.gif
4.チェックアウト完了
subversion4.gif
appフォルダの中に先ほどのapp_bkの中身をコピー。
subversion5.gif
5.リポジトリに登録「SVNコミット」する
subversion6.gif
コミットの際にコメント(任意)をいれ、「全て選択」にチェックを入れる。
subversion7.gif
6.サーバにアップ完了
subversion8.gif
バックログではブラウザでも確認できます。
subversion9.gif
以上で初期登録が完了です。
以後の作業では、まずappフォルダを「SVN更新」(GET)して最新ファイルを取得し、作業終了後は「SVNコミット」(UP)してサーバに反映という流れになります。
なお、ファイル・フォルダの削除・リネーム・移動にはTortoiseSVNからの操作が必要です。
●tmpフォルダは除外したい。
CakePHPの場合、app/tmp/以下にセッション情報やキャッシュなどが一時ファイルとして生成されます。
このファイルもSubversionでバージョン管理されますが、あまり意味がありません。
無駄に改版しないためにもapp/tmp/を管理から外します。
1.tmpフォルダに対してShiftを押しながら右クリックで「削除-ローカルファイルを保持」とする
delete.gif
2.「無視リストに追加」(Subversion管理下のままでは登録できないので1の手順で削除した)
delete2.gif
以後はコミットしてもtmpフォルダは除外されます。
delete3.gif
ただこの方法ではサーバ上のapp/tmp/も削除されてしまうのが問題。
フォルダにignore属性を付加して無視できると解説されていたけど、うまくいかなかった。
●tagsにまとめる
tagsには一定の段階のソース一式をまとめることができます。
とりあえず現状をver0として登録。
tag2.gif
以上、初心者がSubversionを数日いじって得た知見です。
誤りの指摘や、さらに便利な使い方などありましたらぜひぜひ教えてください。
次からはいよいよ機能の実装だ!

コメント

タイトルとURLをコピーしました