Codaでソース管理(1)からの続き。Subversion のインストールと設定が完了したら次は Coda のソース管理機能を設定する。個人的には Transmit からの移行でサイトの設定は自動的に引き継がれたのだけど、”サイトを追加…” コマンドから新規に設定をしても同じ事だと思う。
- Coda のサイトモードからサイトを追加、あるいは編集をした際に表示される “ソース管理” 領域にある「ソースをチェックアウト」ボタンを押す。

- 次のようなモーダルボックスにCodaでソース管理(1)設定した、リポジトリ URL、ユーザ名、パスワードを入力してチェックアウトボタンを押す。リポジトリ URL については、外部に向けて立てるサーバにする場合に svn や http プロトコルを利用する場合もあるので、ユーザ名やパスワードと併せて適宜調整する。今回はローカルの環境だけなので file プロトコルを使った。

- 作業コピーのチェックアウトに問題がなければ進行中の既にファイルやフォルダが存在するプロジェクトの場合、ウィンドウの左側に表示されているファイル一覧の、各ファイルやディレクトリの右横に Subversion でお馴染みの ? や A、Mといったアイコンが表示されることになる。まず “item is not under version control” を示す ? アイコンを押してリポジトリに追加していく。
順序が前後してしまうのだけど新規にファイルやフォルダを作る場合は次の様なモーダルボックスで警告される。追加を選択すると上述した ? アイコンを押す手間が省けることになる。
- ファイルを編集すると “Modified” を示す M アイコンと同時にサーバへのアップロードを促す上矢印アイコンが表示される。
M アイコンを押すとリポジトリにコミットすることになり、次の様なモーダルボックスが表示されるので変更点を入力してコミットボタンを押す。もちろん日本語も可能だ。
また、アイコンが何か分からなければマウスをフォーカスすることでヒントが出るし、右クリックをでもコマンドを得られるので GUI ツールは便利だと思う。
一通りはこのような流れで進んで行くが、複数人で作業している場合はアップデートと更新を注意深く使う必要がある。(参照:状態と更新の区別)また、複数のプロジェクトを管理する場合はどのような構成にするかの判断に迫られることになるのだが、Codaでソース管理(1)の2〜7の手順と今回説明した手順を繰り返し、~/svn/project1、~/svn/project2、~/svn/project3、…という具合にしている。
更に Coda はチェックアウトした際に “.svn” という不可視フォルダをプロジェクトの各ディレクトリに作成し参照している。もしチェックアウトに失敗した場合はリポジトリ URL の編集が不可能なことから、これらの不可視フォルダを全て削除しないと再設定することができないので注意が必要だ。
これまでは Transmit と Smultron、SmartCVS という組み合わせでウェブサイトやウェブアプリケーションの開発を行っていたが、Smultron の開発が終了したことで Coda を導入することにした。加えて FireWire 400 や パラレル ATA、冷陰極管バックライト液晶といった旧システムに別れを告げるべくハードウェアを iMac に変更し、まっさらの状態から Snow Leopard にウェブ開発環境を整えることになったので、Coda と Subversion との連携作業について内容を書き留めておく。
- 最新の Subversion を CollabNet からダウンロードしてインストールする。
- Subversion のディレクトリを作成する。(例:
~/svn)
- 保管プロジェクトのディレクトリを作成する。(例:
~/svn/project、実際は上記2と併せて mkdir -p ~/svn/project で一手順とした。)
- Subversion のリポジトリ作成コマンドを入力する。(例:
svnadmin create ~/svn/project)
- 上記4で作成される
~/svn/project/conf/svnserve.conf の次の4行のコメントを外し先頭の空白を詰める。
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
- 同階層にある
~/svn/project/conf/authz に次の内容を追加する。(斜体のユーザ名は適宜調整する。)
[/]
hkitago = rw
* = r
- 更に同階層にある
~/svn/project/conf/passwd に次のようにユーザ名=パスワードの形で1行追加する。
hkitago = passwd
- Subversion を起動する。(例:
svnserve -d -r ~/svn/project)
更に最後の手順で行った Subversion の起動を OS X の起動後に自動的に行う様に設定する。以前は Lingon というGUIアプリケーションを使っていたのだが、こちらも開発が終了するとのことで Apple が公開している Mac OS X Manual Page For launchd.plist(5) を参照しつつ手作業とした。どちらの場合も管理権限が必要となる。今回は org.tigris.subversion.svnserve という一意の名前で呼び出す事ができるように launchd daemon に登録した。
org.tigris.subversion.svnserve.plist という XML ファイルを次のような内容で作成する。(例:sudo vi /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.tigris.subversion.svnserve</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/svnserve</string>
<string>-i</string>
<string>-r</string>
<string>/Users/hkitago/svn</string>
</array>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>svn</string>
</dict>
</dict>
<key>OnDemand</key>
<true/>
</dict>
</plist>
- 権限を変更する。(例:
sudo chown root:wheel /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist)
- launchd daemon に読み込む。(例:
sudo launchctl load /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist)
- launchd daemon を起動。(例:
sudo launchctl start org.tigris.subversion.svnserve)
子供が昼寝から起きたので Coda 側の設定は次回に。