開発者向け情報
Springheadの開発では,ソースコードの管理にSubversionを利用しています.
Subversionについて
Subversionサーバは,ソースコードを管理しているデータベースです.
用語の説明
- レポジトリ
- サーバにあるソースコードのデータベースのこと.
- 作業フォルダ(ワーキングコピー)
- 自分のPCのソースコードを置いて作業するフォルダ.
- チェックアウト
- サーバから最新版のソースコード一式のコピーを取得し,新しく作業フォルダを作ること.
- 更新(Update)
- 作業フォルダのファイルをサーバにある最新版に置き換えること.
- コミット
- 作業フォルダでの変更をデータベースに反映させること.
作業の流れ
Subversionを用いた開発は,だいたい次のような流れになります.
- 最初に一度だけ
- 日々の作業
- 2.更新(他人の変更点を手元に反映させる.)
- 3.編集
- 4.コミット(自分の変更点をサーバに反映させる.)
- → 2.から繰り返す.
導入と設定(TortoiseSVN+PuTTY)
Subversionを利用するには,PCにSubversionクライアントというソフトを導入する必要があります.
「TortoiseSVN」がおすすめです.
これは,エクスプローラ上で動作し,GUIによる操作が可能なSubversionクライアントです.
ソフトのインストール
TortoiseSVN
PuTTY
Subversionサーバに接続するために,必要となるソフトです.
公開鍵・アカウントの作成
- c:\Program Files\PUTTYGEN.EXE を実行してください.
- 「Type of key to generate」の所で、「SSH-2 DSA」を選択します。
- 「Generate」を押して、上の空白部分でマウスをランダムに動かします。(暗号鍵作成のための乱数種になります)
- しばらく動かしていると鍵が生成されるので、「Key Passphrase」と「Confirm Passphrase」に同じパスフレーズを入力。パスフレーズは空にしておくと楽です。(ただし,秘密鍵ファイルが盗まれるとログインされてしまうので注意してください)。
- 「Save public key」で、公開鍵を保存。
- 「Save private key」で、秘密鍵を保存。秘密鍵には、.ppkという拡張子がつきます。このファイルは,他人に盗まれないよう管理してください.
- 「Save public key」で保存した公開鍵を、Springhead 開発者ML(dev@springhead.info)宛にメール添付で送ってください。こちらでアカウントを作成して、鍵を登録します。同じメールに、「ユーザ名」の希望も書いて送ってください。
PuTTYの設定
c:\Program Files\PuTTY\PUTTY.EXE を起動すると、設定画面が開きます。
- "Session"で
- Host Name : springhead.info
- Port : 22
- Protocol : SSH
- "Connection"=>"Data"で
- Auto-login username : [アカウントの作成、の時に作成したユーザ名]
- "Connection"=>"SSH"=>"Auth"
- Private key file for authentication : [先ほど「Save Private Key」で保存した秘密鍵]の場所
- 再び"Session"に戻って、
- Saved Sessionsに適当な名前を入力(「sprsvn」など)
- ここで決めた名前が「接続の名前」となります。この接続名は以後も使います。
- Saveボタンを押す
TortoiseSVNの設定
エクスプローラの右クリックメニューを出すと、「TortoiseSVN」というメニューが追加されていると思います。そのメニューから「設定」を選ぶと、設定画面が出てきます。
- 「ネットワーク」タブの「SSHクライアント」の欄に、次のように入力します。
- c:\Program Files\TortoiseSVN\bin\TortoisePlink.exe
チェックアウト
- Springheadの作業をはじめようとする場所に、作業用のフォルダを新しく作ります。
- エクスプローラでそのフォルダを開きます。
- 右クリックメニューから「チェックアウト」を選択。
- 「リポジトリのURL」の欄に、URLを入力してOKを押してください.URLは次の通りです.
- Springhead1の場合 svn+ssh://sprsvn/home/svn/spr/Springhead/trunk/
- Springhead2の場合 svn+ssh://sprsvn/home/svn/spr2/Springhead2/trunk/
- 「sprsvn」は、PuTTYの設定のところで決めた「接続の名前」に置き換えてください。
以上で準備作業は終わりです。
TortoiseSVNの基本的な使い方
チェックアウト
作業用のデータ(最新のソースコード他、一式)をダウンロードします。
- チェックアウトしたいフォルダで、右クリックメニュー⇒「チェックアウト」
- 「レポジトリのURL」に適切なURL(svn+ssh://sprsvn/home/svn/spr/Springhead/trunkなど)を入力してOKを押す
アップデート
一度チェックアウトしたら、以後はアップデートによって最新のソースコードに更新します。
これにより,他人がコミットした変更点が自分の作業フォルダにも反映されます.
- チェックアウトしたフォルダで、右クリックメニュー⇒「更新」
ファイル、ディレクトリの追加、削除
作業フォルダ中にファイルやフォルダを新しく作成した場合,そのままだとSubversionの管理外のファイル・フォルダとなります.
新しく作成したファイルやフォルダを、Subversionに管理させるには次のようにします。
- 新しく追加したファイル・フォルダを右クリック⇒「TortoiseSVN」⇒「追加」
このとき,フォルダの場合中のファイルひとつひとつについて管理させるかさせないかを選択することができます.
また、次のようにすると、既にSubversionの管理下にあるファイル・フォルダをSubversionの管理からはずし、ファイルそのものも削除します。
- 削除したいファイル・フォルダを右クリック⇒「TortoiseSVN」⇒「削除」
ファイル名の変更、ファイルの移動
ファイル・フォルダの名前を変更したり,場所を移動します.
- 移動:
- 移動したいファイルを右クリック⇒「TortoiseSVN」⇒「名前を変更」
- fugaフォルダに移動したいなら、変更後の名前として「fuga\piyo.cpp」などと入力。
- 一つ上のフォルダに移動したいなら、「..\piyo.cpp」などと入力。
- 名前変更:
- 移動したいファイルを右クリック⇒「TortoiseSVN」⇒「名前を変更」
- 変更後の名前を入力
コミット
自分の加えた変更を、サーバにアップロードします。コミットするときには、記録をとるためにメッセージの入力が必須です。
- コミットするフォルダで、何もないところを右クリック⇒「コミット」
- ログメッセージを入力して、OKを押す
確認
現在の状況の確認です。
TortoiseSVNの場合、エクスプローラ上のファイル一つ一つに状態を示すアイコンが付きます。
- 緑のチェック:特に変更なし
- 赤い「!」:変更が加わったファイル
- 黄色の「!」:更新処理中に衝突が起きたファイル
- 「+」:追加されたファイル
- 何のアイコンも付いていない:Subversionの管理外
古いレポジトリからの移行について
2006年4月に,レポジトリの場所(URL)が変わりました.
そのため,2006年4月以前にチェックアウトした作業フォルダを持っている場合,URLを変更する作業が必要となります.
- 現在,URLは下記の通りです.「/home/svn/下記の略称/プロジェクト名/trunk」を指定してください。
- Springhead : svn+ssh://springhead.info/home/svn/spr/Springhead/trunk
- Springhead2 : svn+ssh://springhead.info/home/svn/spr2/Springhead2/trunk
- Experiments : svn+ssh://springhead.info/home/svn/lab/Experiments/trunk
- Personnal : svn+ssh://springhead.info/home/svn/personnal/Personnal/trunk
URLを変更するには,作業フォルダの右クリックメニュー → TortoiseSVN → 再配置(英語版の場合Relocate) を行ってください.
または,コマンドライン版Subversionの場合は,
cd Springhead2
svn switch --relocate (古いURL) (新しいURL)
でできます.「古いURL」は,
svn info
で確認できます.
また,作業フォルダに大きな変更点がない場合は,一度作業フォルダを別名に変更した上で,チェックアウトしなおした方が簡単な場合もあります.
参考資料
- Subversionの導入と使用
- svn+ssh on Windows
- TortoiseSVN
過去の資料
Auth/Subversion、過去の資料