2009年9月28日月曜日

ネットでバージョン管理 No.1

システムの開発をする上で最も重要になるのが、ソースのバージョン管理だ。
私もバージョン管理システムを利用しているが、具体的には「SVN(Subversion)」と「Git」の2つを主に利用している。

バージョン管理システムの基本的な動作は、以下のようになっている。
サーバーにリポジトリを置き、その中にプログラムソースファイルを保存しておく。
リポジトリ内のファイルをクライアント側に編集用としてコピーする。
編集する場合はクライアントに有るソースを編集し、編集が終わればリポジトリへ戻してあげる(これをコミットといい、リポジトリ内のソースを次のバージョンへ更新する)。
リポジトリに保存されたソースファイルは変更点等(コミット毎)の履歴を持っているので、後から過去の編集箇所を確認したり元に戻す事が出来る。

このバージョン管理システムを使えば、コミットする度に新しいリビジョン番号と言うのが発行され、変更点等とともに保存されるので、リリースするシステムのバージョン番号にこのリビジョン番号を追加しておけば、いつどのように変更したバージョンの物かがすぐに分かるというものだ。

SVN
基本的にCVSの機能を持ったバージョン管理システムだが、CVSよりも利用しやすくなっている。
「TortoisSVN」というSubversionクライアントを使う方法がお勧めで、Windowsのエクスプローラと統合されてかなり使いやすい。
Gitに比べると単純な構成になっているのでどちらかと言うとこのSVNの方がとっつきやすくて簡単。

Git
これもSVNと似通った機能だが、大きく違う点が一つ。
SVNがリポジトリをサーバーのみに持っているのに対してGitは各クライアント側にもリポジトリが持てる点だ。
操作方法としては、コミットした後にプッシュするという動作が追加される。

ここでのコミットはクライアントに持っているリポジトリを更新する事を指し、プッシュというのはクライアントに持っているリポジトリをサーバー側のリポジトリへ反映させる事を指す。
SVNと同じく「TortoisGit」というGitクライアントを使う方法がお勧めで、Windowsのエクスプローラと統合されてかなり使いやすい。

実際に使ってみる
まずSVNにしろGitにしろ、”リポジトリ”という物を用意しなければ始まらない。
このリポジトリと言うのが、各種ソースコードのリビジョン番号と変更点を管理してくれる。
既にリポジトリを持っている人はそれを使えば良いのだが、ここではタイトルのようにインターネット上に有るリポジトリを利用してみる事にする。

私自身インターネット上に有るいろんなリポジトリサービスを利用してみたが、有償の物、無償の物、付加価値が付いた物、そして保存できる容量にも色々あり、用途に応じて使い分けられるほど種類が豊富なようだ。
今回は無料で使えて機能的にもお勧めな「unfuddle」を例に挙げてみる。
このサイトはとても便利なのだが、ページが英語のみなので、とりあえず日本語で手順を書いておく事にする。
まずは以下の手順でアカウントを作成してみる。

■アカウントの作成手順
1. http://unfuddle.com/ へアクセスし、「Sign up」からアカウントを作成する。

2. 「Private FREE」というプランを選択。

3. 「Subdomain」の欄に好きなURLになる文字を入力。

4. 「Title」の欄には好きな名前を付ける(日本語も可)

5. 「Email」へメールアドレスを記入

6. 「Username」へログイン時に利用するアカウントIDを記入

7. 「Password」と「(Confirm)」へログイン時のパスワードを記入

8. 規約に同意したら「Continue」をクリック


すると、自分専用URLが作成され、そのトップページに遷移します。
ページ上部にタブが有り以下のようになっている。

■各タブの説明

Dashbord … アカウントの状態やプロジェクトの概要がまとめられたページ

Projects … Unfuddleにはリポジトリだけでなく標準でプロジェクト管理システムが搭載されており、ここではそのプロジェクトの一覧が表示される。今回はFreeプランを選択しているので、プロジェクトは1つしか持てない。初期では「My First Project」と言う名前のプロジェクトが用意されている。(後述)

Repositories … リポジトリ一覧。Unfuddleの良い所として、このリポジトリが複数利用できる点が有る。しかもSVN、Gitの両者に対応している。

Tickets … プロジェクト管理内のタスク一覧。フリープランで有ればプロジェクトのページから利用すれば良い事だが、複数プロジェクトが利用できる有償プランで使うためにここに有るのだろう。

People … 利用者一覧。本人以外にもう一人ユーザーを招待出来る。開発者二人で一つのプロジェクトおよびリポジトリを利用する場合等もこのフリープランで利用可能。

Settings … 各種設定。プランの変更やタイムゾーンの変更等。


プロジェクト管理も優れていて使いやすいのだが、話を進めるため、さっそくリポジトリを作成してみよう。

■リポジトリの作成
1. 「Repositories」タブで「New Repository」をクリックすると登録画面が表示される。

2. 「Title」にリポジトリの名前を記入。作成するシステムの名前等を入力すると良い。(日本語も可)

3. 「Abbreviation」はリポジトリにアクセスする際に利用するURLの一部になる。

4. 「Description」は説明文章で、これはオプション。

5. 「Type」でリポジトリの種類を”SVN”と”Git”のどちらかを選択する。フリープランではSSL通信をサポートしていないのだが、Gitを利用するとSSHでのセキュア通信が利用できるので、個人的にはフリープランの場合はGitをお勧めする。

6. 「Create Repository」をクリックすると自分専用のリポジトリが作成される。


さて、ここから一度クライアントのPCの設定に入る。
リポジトリにアクセスするためにSVNリポジトリであればSubversionクライアント、GitリポジトリであればGitクライアントと言うソフトをインストールしておかなければならない。

■Gitクライアント
からダウンロードすると良いだろう。

・TortoiseGit(英語版、インストーラ)
・TortoiseGit日本語言語ファイル
・msysgitインストーラ
の三つをダウンロードし、全てをインストールする。(各ファイルを実行するだけなので、インストール手順は割愛します)

「msysgit」というのがGitクライアントの本体で、「TortoiseGit」というのが、Windows上で操作しやすくするためのGit*Windows統合ソフト。
ちなみにSVNの場合は
にTortoiseSVNと言うのが有りますので、これを使うと便利です。
Gitクライアントのインストールが終わったら、さっそくリポジトリにアクセスしたいところですが、その前に、通信を暗号化するキーとなるファイルを作成しておく必要が有る。
キーと言うのはSSH通信の暗号化を行うための鍵をさらに暗号化するための鍵。
公開錠・秘密錠のセットで暗号化と複合化を行い、公開錠で暗号化した物は秘密錠でしか元に戻せず、さらにこれを利用して通信用の共通暗号化錠を受け取り、この共通錠でセキュアな通信を行います。
この最初の鍵のやり取りを暗号化するための秘密錠と公開錠を作成し、公開錠をUnfuddleに登録します。
TortoiseGitをインストールしたら、スタートメニューに「Puttygen」と言うキーの作成ソフトが有ると思うので、これを使用してキーを作成。

■キーの作成と登録
1. Puttygenを起動


2. 「Generate」ボタンをクリック

3. Keyの欄のプログレスバーがいっぱいになるまで、PuTTY Key Generatorのウインドウ上でマウスを適当に動かします。(このマウスの動きが無作為な鍵の生成に利用されるので同じ鍵は、ほぼ二度と作成されません。)

4. Keyの欄に例のような公開錠(例のような文字列)が表示されます。これをUnfuddleサーバーに登録する事になりますのでコピーしておきます。
例:
 ssh-rsa
 AAAAB3~~FU= rsa-key-20090928

5. 秘密錠を保存します。「Save private key」をクリックして、自分専用のフォルダ(マイドキュメント)等に保存します。※このキーファイルは外部に流出しないように注意して下さい。

6. Unfuddleに戻り、作成した公開キーを登録します。「People」タブから、自分のアカウント(ピンクの枠内)の「Edit」をクリックします。

7. 「Edit Person」というページが開くので、下の方に有る「New Public Key...」をクリックします。


8. 「Title」欄に自分の公開錠である事が分かるよう、この鍵に適当に名前を付けます。

9. 「Value」欄に先ほど 4.でコピーした公開錠を貼り付けます。

10. 「Add」ボタンを押すと登録されます。(右下の「Save changes」を押さなくても登録されます。)


これで、UnfuddleのGitリポジトリの利用環境が整った。

ここまで長かったが、やっとここからがGitの利用方法となる。

■ソースコードの登録
次回、「ネットでバージョン管理 No.2」へ続く

0 コメント:

コメントを投稿