悩めるSEの雑記です

日々思いつくがままです

ちょこっとgitのお勉強

03月31日に開催される「実践型XP一日体験ワークショップ!」に参加する。
このワークショップではペアプロ、TDD、継続的インテグレーション
体験ができるだが、バージョン管理にはgitを使うとのことで、
今日空いた時間で軽く触ってみた。

これまで使ってきたのは、VisualSoruceSafeにSubversion
近年はMicrosoft系プラットフォームでもSubversionが多かった。
何れも単一リポジトリのものだ。

gitは分散型ということだが、正直普段のプロジェクトの中での
活かし方がまだ思いつかない。



以前1ヶ月ヘルプで参加したプロジェクトで、個人的にgitを利用している人がいた。
その人はローカル作業の中でちょっといじる際のバックアップ的に使っていた。
ネットでどんな使い方しているのか探してみたけれどあまりぴんとこなかった。
あったのはローカルで色んなバージョンを作るようなやり方の場合に便利というもの。


gitの場合、ローカル環境にあるリポジトリに対してコミットし続け、
ある程度できあがったところでマスターリポジトリへpushするという
手順になると思う。その場合当然のようにコンフリクトが発生するはず。
こんなサイトがあった → http://blog.katty.in/964

コンフリクトは結局手で一つずつ直すしかない。


今のプロジェクトではSubversionだが、ロック必須属性を設定して、
必ずロック取得してから編集する運用にしている。バージョン管理に不慣れな
メンバーもいるので、今のところこのやり方がベストだと思っている。
担当も比較的にハッキリしているので競合することも少ないし。


gitにはロックする仕組み、いや考えがない。マージするということは
ソースをいじるということ。当然動く保証はない。そうなると・・・

 1)編集
 2)テスト
 3)コミット
 4)マージ(push)
 5)改めてテスト

となるのか。こんなときにテストコードが活きてくるのだろう。
無理してgitを使う必要はないが、これだけユーザが増えてきているのだから
「良さ(活かし方)」が有るのだろう。それは知っておきたい。



ああ、単純に考えて、突発的にファイルを作ったけれど、バージョン管理したいなって
時にはgit楽チンだな。数コマンド打ち込めばそれで良いんだものな。
1.7.10からはUTF8対応するみたいだし、ちょっと使ってみよう。