SCM Boot Camp in Hokkaidoに参加しました #scmbc

SCM Boot Camp in Hokkaido

http://kokucheese.com/event/index/39954/

http://togetter.com/li/322363

分散バージョン管理システムの勉強会に参加しました。
ざっくりまとめたいと思います。

VCS経験

基本的にWindowsGUI操作のみで、CUIでは普段使っていません。
DVCSは過去のSCMBC資料を見ながら一人で色々やってみたレベルで、複数人での経験はなし。

参加目的

一人でもDVCS使ってみるとすごく便利!業務でも使いたい!広めたい!複数人で使うとどうなるだろう?

 

概要

基調講演(@kyon_mmさん)

Mercurial入門セッション

 

演習

 

演習1:

bitbucket準備

  • bitbucketのアカウント作成
  • SSHkey(公開鍵)を作成してbitbucketに登録
  • bitbucketでリポジトリ作成(Publicリポジトリに設定すること)
  • cloneしてpush、pullを確認
    • SSHで接続できなかったのでHTTPSを利用

環境準備

  • .hgrc作成
    • ユーザ名、メールアドレス設定
    • extensions
      • color
      • graphlog
  • 言語設定を「日本語」に設定
    • 環境変数 (LANG=ja_jp-UTF8)
      • homebrewでインストールしていたが反映されなかったので、Mercurial公式からHgダウンロードして入れ直し
    • hg help で日本語表記されていればOK

課題スタート

  • (代表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日でした。参加した皆様お疲れさまでした。ありがとうございました!