More Related Content
More from Yuichi Tateno (6)
Deb2009
- 7. そもそも git とは
分散 VCS
好きなだけレポジトリの複製
どこからでもコミット
(svn と比べて)動作が高速
低コストなブランチ作成
賢いマージ
SHA1 によるデータ管理
リビジョン1000などという概念はない
- 24. git から svn へ
svn からのデータコンバート
git-svn で驚くほど簡単に
デプロイ
capistrano にちょっと手を入れレシピ書き
svn と比べ、デプロイ速度が1000%ぐらい高
速に(当社調べ)
- 29. はてなでのgit 開発の流れ
git checkout -b example
コード書いて適宜 git commit
リモートにブランチ反映したい / git-publish-branch
リモートからブランチに反映 / git pull か git pull --rebase
git diff master...example
master に反映
git merge master # master からマージ, コンフリクト解決
git checkout master
git merge example # example から master へマージ
コンフリクト発生を防ぐ
- 30. git 運用はスムーズか?
やっぱり git 難しい
覚えるコストが svn と比べて高い
よく嵌る
誤った方法でリポジトリ変更・ push すると悲
惨に
master に merge するときコンフリクト祭り
windows クライアント無い
デザイナ・ディレクタが VMWare+Linux から..
TortoiseGit に期待
- 34. スクリプト例
社内IRCにコミットを知らせる
module Grit::Hooks
class PostIrc < Hook
def execute(refname, oldrev, newrev)
commit = @grit.commit(newrev)
# ...
irc.post('git', message)
13:29:43 gittan:
[projects/hatena-bookmark]
yuichi tateno: ヘッダ色固定
https://git.local.hatena.ne.jp/git/projects/ha
tena-bookmark/commit/71abae8949b
- 41. git ブラウザ
URL を git コマンドっぽく
/bookmark/diff/HEAD..HEAD~
/bookmark/diff/e87bb6f3...81f0d24ec2b
- 44. git サーバ運用
git ユーザを作ろう
git@hostname:/projects/path
パーミション周りの問題のため
git ユーザ管理
~/.ssh/authrized_keys でユーザ管理
git ユーザのログインシェル
git-shell ・git 関係のコマンドのみ通してくれ
るシェル
- 45. まとめ
git 導入から始まり、とても便利に
git のブランチ最高
svn でも同じことができる・けど実運用に耐
えれるかどうかが重要
はてなアイデア・あしか・git
git の導入コストは高い
そんなにオススメはしない
けど、分散 VCS の波はもう来ている
今のうちに使っておくのは吉
- 58. 既存の MVC の問題点
ORM に処理が集中
データソースが RDB だけならまだ良い
他のデータソースを扱う場合は?
適当にクラス作成?
コントローラに実装?
- 72. fixture の高速化
YAML -> ORM -> RDB
数百件のデータを ORM 経由で insert
遅い
テストメソッドごとに走る
テスト -> 実装 -> テスト -> 実装
テストの時間 MOTTAINAI !
- 73. 局所高速化
YAML -> ORM -> RDB ->
mysqldump
YAML のタイムスタンプが変更無い
mysqldump のデータ insert 一行
fixture テストが 10秒→4秒に
全体のテストも 10分→6分に
life-changing