分散型バージョン管理システム勉強会@京都に参加しました

http://atnd.org/events/17060


上記URLの勉強会に参加してきました。
主催者の@naoinaさん宅に泊まる予定で愛媛→京都に行ったので、
「LTするよな!」と言われたら「はい…」としか言いようが無い感じで、
悶々と眠れn…(´ω`)良い経験でした


内容については参加者の方が色々書いてるので特別書くこと無いかな、という感じです。
どちらか(git / mercurial)知ってる方は「まぁ付いていけたのかな」と。
svnだけ知ってるという人は「どうだったのかな」と。
きっかけになれば良いと思いますが。



以下、emacsで書いた資料をうまくpdf化できない
PCスキルの低いramusaraさんがLTした内容まとめ
# 土日に余裕があったら何とかします…

【タイトル】
hook scriptの紹介


【内容】
■About me(省略)


■Hook?
Hookとはなんぞや、ということについてつらつらと。
クライアントサイド(コミットメッセージ入力前、コミットプロセス完了後など)、
サーバサイド(push)について


■Gitについて / Mercurialについて
2つの分散型バージョン管理システムのHookの仕組みについて。
前者が「決められたファイル名でファイル配置」
後者が「設定ファイル内で指定」の話とか。


■フックスクリプトのネタ
1.コミットさせない
 - シンタックスチェック
 - 末尾スペース(ゴミ)のチェック
 - コミットメッセージが適切かどうか。
  キーワード(名前、メールアドレス、チケット番号など)を含むか
 - masterブランチへのコミット拒否
2.コミット前にテスト
 - (テスト通らないような)異常コードのコミットを防ぐ
3.コミット後に自動ビルド/ファイル生成
 - バイナリ作成して実行可能な状態にしておく
 - コミットされたファイルから生成されるモノ(ドキュメント等)を自動生成
4.メール通知
 - pushされたら開発者に通知とか
5.自動デプロイ
 - htmlファイル更新後、公開用ディレクトリに展開


■上記以外にネタあったら教えてね(*'ω' *)というお話


■デモ
フック使えばこういうことできますよっていう説明がしたかったので
jenkins + gitのhookを利用して
「コミット→自動テスト→結果表示」の説明をしました。
 1.add/sub/mul/div 4関数のみ定義したファイル(python)があり
 2.上記をテストするコード(nosetests利用)があり
 3.jenkinsというものがあり
 4. .git/hooks/post-commitにwget http://localhost:8080....
   jenkinsにアクセスするようhook設定してあり
 5. 2のテストコードを異常なものに変更してコミットすると
 6. jenkins側でテストがNG(赤)に自動でなることを確認

こんな感じ。5.の時点でアホなことをしてて
「あれ?うまくいかない?」とかトラブルありましたが…w



勉強会中にいくつか細かい所で学んだり、
twitterの方で良い情報貰ったり(*'ω' *)楽しい休日でした