SCM Boot Camp in Hokkaidoに参加しました #scmbc
SCM Boot Camp in Hokkaido
http://kokucheese.com/event/index/39954/
分散バージョン管理システムの勉強会に参加しました。
ざっくりまとめたいと思います。
VCS経験
- Subversion (3年弱)
- Bazaar (6ヶ月)
- Mercurial (5時間ぐらい)
基本的にWindowsのGUI操作のみで、CUIでは普段使っていません。
DVCSは過去のSCMBC資料を見ながら一人で色々やってみたレベルで、複数人での経験はなし。
参加目的
一人でもDVCS使ってみるとすごく便利!業務でも使いたい!広めたい!複数人で使うとどうなるだろう?
概要
基調講演(@kyon_mmさん)
- http://www.slideshare.net/KyonMm/scmbc-in-hokkaidosession
- 途中、別の会場と間違えたのかドアを開けた人が、うさみみを見てそっとドアを閉める事案が発生
Mercurial入門セッション
演習
- 課題
Mercurialチートシートの作成。
参加者7名が2チームに分かれて演習。 - @shuji_w6eさんチーム
- @kyon_mmさんチーム
- 4名(私はこちら)
- Markdownで作成
- リポジトリ https://bitbucket.org/manzyun/scmbootcamp/changesets
演習1:
bitbucket準備
- bitbucketのアカウント作成
- SSHkey(公開鍵)を作成してbitbucketに登録
- bitbucketでリポジトリ作成(Publicリポジトリに設定すること)
- cloneしてpush、pullを確認
環境準備
- .hgrc作成
- ユーザ名、メールアドレス設定
- extensions
- color
- graphlog
- 言語設定を「日本語」に設定
課題スタート
- (代表1名のみ) 演習用のPublicリポジトリの作成
- 作成した人はメンバーのアカウントに権限付与
- みんなでclone
- 付箋を使って全員でタスク書き出し(かんばん方式)
- 各自タスク1個目を消化(commit,merge,pull)
- ブランチは作成せず、全員defaultブランチを利用
(1名都合により途中退出)
演習2:
- Markdownの書式記述を確認、統一
- 書式の修正+各自タスク2個目を消化
- ファイル名のリネーム、不要ファイルの削除あたりでmultiple heads発生
演習3:
- multiple headsはmergeで解消
- タスクごとにフューチャーブランチを作成(ブランチ名:id/数値)
- multiple heads解消分をupdateし忘れ、一つ手前からブランチしてしまう。逆方向マージで解決。
- 各タスク完了後、defaultにマージ
感想
- D4C (いともたやすく行われるえげつないコンフリクト)
この世界に極めて近い運命を辿っている隣の世界(ブランチ)から基本の世界(default)に引きずり込むことが可能。ただし同一の存在が出会ってしまった瞬間に世界は崩壊するッ! - マージは怖くない
コミットされたブランチ同士をマージするので、変更が消えることはない。変更が多くても安心! - マージソフトを準備しておくべきだった
マルチプラットフォーム対応で3-way mergeができるP4mergeがおすすめらしいです(by @shuji_w6eさん) - 環境準備を事前に済ませておけばよかった
思ったよりも時間を食ってしまったので、事前にやっておけば・・・! - コマンド操作に慣れたい
たまにputtyで触るぐらいなので、不慣れさからの時間ロスが多かった気が・・・MacHGなりGUIで操作してもよかったかも。 - マルチプルヘッドが起きたらとりあえず確認
- hg parent
- hg heads
- Subversionに慣れた体で少し詰まったところ
- リポジトリ / 作業領域のイメージ
- pull / updateの挙動の違い
- ブランチの作成 / 切り替え
- 入門セッションの最初にも書いてありますが、Subversionでは、リポジトリと作業領域が1対1なので、最初はブランチのイメージができていませんでした。リポジトリには複数のブランチが存在し、pullではリポジトリ内容を更新、updateで作業領域に反映・切り替えを行う、とイメージが頭に入った瞬間に(あっ!Subversionにはもう戻れない…)と、「言葉」でなく「心」で理解できた!
もうSubversionでブランチを切る気力が湧きません。 - ブランチ戦略がとても大事
すごく便利な反面、実際に運用する上では、ブランチ戦略が曖昧だと破綻しそうだなあ、というのは体で感じました。 - バージョン管理の学習は必須である
私が入社したときには「とりあえず終わったらコミットしておけばいいから」ぐらいにしか言われた記憶はありませんでした。が、これからの時代は間違いなく「必須スキル」だろうと実感できました。
「こんなに簡単になるんだ」というのが素直な感想でしょうか・・・ - 全体
問題発生→解決の流れが、非常に体に染み渡って身に付く感覚がしました。
懇親会
- 闇LT
Hello, conflict World! - マージ戻し職人の朝は早い
夜も遅いらしいです - いつからなごやがこわくないと錯覚していた?
・・・何・・・だと・・・・!?
回転寿司
回転寿司「はなまる」が美味しいという話題が出ていましたが、北見が本店の回転寿司「トリトン」も非常に美味しいです。おすすめです。(地元アピール)
スカイツリーに出店しているらしいので、ぜひ一度お試しください。むしろ北海道まできて食べてください。(地元アピール)
非常に充実した1日でした。参加した皆様お疲れさまでした。ありがとうございました!