Developers Summit 2009 株式会社はてなの開発戦略 1/2
昨日、最後のセッションだけ聞いてきました。トピックは下の2つでした。
ちょっとメモが長くなったのでトピックごとに記事を分けています。
まずgitの話から。最初はgitってこんなモノだよ、という解説。はてなは完全にgitへ移行したらしいけど、その理由がsvnのリポジトリがぶっ壊れたからってのにワロタ。でもそういう機会でも無いとなかなか現存の環境からの移行は進まないだろうな、とも思います。しかしRAID1で組んでて両方のHDDが逝ってたとかなかなか無いような。
はてなのgitの運用はsvnみたいな全員に共通のコミット用レポジトリにpushする方式みたいでした。そりゃ直接各人のツリーをpush/pullするのは運用が難しすぎるよね。
後半の方はgitをこんな感じに使ってます、という事例だったんですがあれはgit触ったこと無い人は意味わからんと思った。特に気になったのはgit-shellで適切なパーミッション設定してあげるのと、ネオあしかの運用周りの話。自分も便利な社内ツール欲しいなと思ってたので参考になりました。Tracがプラグインでgitに対応してるってのは初耳でした。あとデザイナーにどうやってgitを使わせてるんだろうかと考えてたらVMWare+LinuxでWindowsからアクセスさせるという荒業でしたw それでもインターフェースは結局CUIだと思うんだけど更新スクリプトを組んでて「これダブルクリックしてね」とかっていう運用なんだろうか。。
以下、講演時にとったメモ書きです。
2008年初頭
- Railsがgitに移行
- github
実際の業務で使う?
復旧
- RAID1で運用
- HDDが物理的に壊れてた
- もう片方のFSFSも一部壊れてた
gitへの移行は可能?
gitからsvnへ
- データコンバート
- git-svnで簡単
- deploy
- capistranoにちょっと手を入れレシピ
- svnと比べて速度が1000%くらい高速になった
開発のメリット
- ブランチ
- ブランチ作成一瞬
- ディレクトリ変更無しにブランチきりかえ
- シェルのファイルパスの変更とか気にしなくていい
- svnの頃は作成が面倒+切り替え重い
- 実用的でない
作成ポリシー
- origin/master
- 本番のデプロイファイルのみ
- origin/機能ごとのブランチ名
- 機能ごとにブランチを作成
- ローカルでは適宜ブランチ作成
ブランチとコードレビュー
- 適宜レビュー
- ブランチで簡単においかけれる
- gitでのコードレビュー
- git diff master ..barnchname
開発の流れ
- masterからローカルに同期させて、コンフリクトを解決してからmaster更新する
Gitを利用した社内ツール
ネオあしか
- タスク管理
- Rails + git
gitブラウザ
- チケット管理
- 社内用途にマッチした機能で実装
gitサーバ運用
- パーミッション周りで問題が出た
- git-shell
- git関係のコマンドだけ通す
まとめ
- ブランチ最高
- 導入コスト高い
- 現状ではそんなにオススメできない