2010年12月20日月曜日

バージョン管理をSubversionからgitへ移行しました。

今まで会社のバージョン管理にはSubversionを使っていたのですが、このたびgitに乗り換えました。理由は簡単で、gitの方が速い、使いやすい、というところでしょうか。

もともと今年の夏から作り出して既にリリースしておりますiPhoneアプリの「Now Playing Friends」でgitを使っていたのですが、とにかくコマンド実行がスピーディであること、そしてブランチの作成とマージがとってもやりやすくて気楽な所が気に入っていました。

もちろんSubversionも良いのですが、URLの入力がめんどくさいのと、マージにいちいちリビジョン番号を覚えるか、マージの為だけにスタートとエンドのブランチを別に切ってやらないといけないのが手間でだんだんとブランチを切らなくなってました。

gitだと単にブランチ名を指定してマージすれば、後は既にマージしてある内容は無視して、よしなにやってくれるのでらくちんです。こう書いてると単なる怠け者みたいですが、できれば開発の際には開発物そのものに気持ちを集中したいのでバージョン管理のちょっとした作業で多少なりとも頭を使わないといけないようなものはさけたいのです。それに自分以外の新入りの人にも使ってもらわないと行けないので、ちょっとしたミスで面倒な事になるようなものだとコレも困ります。

あと、ウチの会社の場合は仕様書なるものが事実上存在せず、結構その場その場で「こうした方が良くない?」って感じで仕様を決めながら作ってる所があるので、”手元でサクッとブランチを切ってそっちで試しに作ってみる”という動きが高速にできるgitは理想的とも言えます。

subversionからgitへの乗り換えは実に簡単でした。
まずはgitosisサーバをセットアップします。こちらの”プログラミング/gitosisによるgitサーバの管理”を参考にさせて頂き、Debian GNU/Linux上にgitosisをセットアップしました。

subversionからの乗り換えは、一旦subversionからgit svnを使ってチェックアウトします。
$ git svn clone -s http://hogeserver/svn/tara-project
このとき指定するURLは対象プロジェクトのルートディレクトリを指定します。上記だとhttp://hogeserver/svn/tara-project/trunk 以下に実際のソースがあるのが通常の配置だと思いますが、trunkではなくその上位のプロジェクトディレクトリを指定するとあとはgit svnがよしなに判断してくれます。

続いてできたディレクトリ内に移動してプロジェクトをgitサーバに登録します。事前にgitサーバにプロジェクトを登録する事をお忘れなく。
 $ git clone gitosis@localhost:gitosis-admin
 $ cd gitosis-admin
 $ vi gitosis.conf

  ...
  [group gitosis-admin]
   writable = gitosis-admin  #<=ここにスペース区切りで新規追加するプロジェクトの名前を登録する。
   ↓
   writable = gitosis-admin tara-project
   # 保存してvi終了
  $ git commit -m "add new project" -a
  $ git push

以上でプロジェクトの登録作業は終了です。
以下が実際のsvnからgitへの移行です。
 $ cd tara-project
 $ git remote add origin gitosis@localhost:tara-project
 $ git push origin master
これで登録できました。

別の場所でチェックアウトしたいときは
 $ git clone gitosis@localhost:tara-project
とすればチェックアウトできます。

おそらくはsubversionで多くの場合問題ないのでしょうが、自分の環境でより使いやすいツールを常に選択しつづけていく事で作業環境が劇的に変わる事は結構あります。それは必ずしも新しいツールとは限らず、古くから使われているUNIX向けのソフトウエア群だったりする場合も多いです。Emacsなどは非常に多機能なので普段から使っていても知らない機能は沢山ある事と思います。たまにUNIXコマンドや使い慣れているエディタについての専門書を読んでみたり、以前から聞いた事はあったけど使ったことのないツールを試してみる事をお勧めします。もしかしたら大幅な時間短縮に繋がるかもしれません。

gitを使うにあたっては以下の書籍を参考にしました。

Amazon: 入門git 

0 件のコメント:

コメントを投稿