「水銀中毒に注意!」
 Mercurialのご紹介




    http://www.flickr.com/photos/lepimento/5607768702/
自己紹介
●   名前:湯川 航
●   Twitter:http://twitter.com/#!/wyukawa
●   ブログ:http://d.hatena.ne.jp/wyukawa/
●   VCS利用歴
    CVS→Subversion(いまココ)→Mercurial?
●   Mercurialを選んだきっかけ
    Windowsに優しいらしいのとTortoiseHgがよさ
    げだったので(2.0になってちょっと微妙)
●   現状のMercurial使用状況
    職場ではSubversionなのでローカルでのドキュ
    メント管理にちろっと使うぐらい。。。
Mercurialとは


Pythonで作られた分散バージョン管理ソフト


     Joel Spolskyもイチオシ




GoogleやATLASSIANなどがスポンサー
Mercurialの特徴
Subversionとコマンドが似ているので覚えやすい
          Mercurial       Subversion
 追加       hg add          svn add
 コミット     hg commit(ci)   svn commit(ci)
 更新       hg update(up)   svn update(up)
 差分表示     hg diff(di)     svn diff(di)
 マージ      hg merge        svn merge
 取り消し     hg revert       svn revert
 ログ       hg log          svn log
 状態表示     hg status(st)   svn status(st)

コマンドが単機能でオプションが少ない
基本的には使いやすい
Mercurialだが混乱する
  ポイントが2つある
ブランチの切り替えはhg update

         hg update ブランチ名

Subversionならswitchコマンドに相当する。hg
updateはリビジョンの更新とブランチの切り替え
の両方の機能を持つ。

   hg update = svn update + svn switch
Multiple Heads




svnだとupdateで昔(r310)に戻ってのコミット
(r318)はできないが、hgだとできるため複数の
Head(r317,r318)を持つことになる。エラーとい
うわけではなく、必要に応じてマージして解消
する。
以上で基本機能の紹介は終わ
りですが、DVCSといえば歴史
改変ですよね。Mercurialは
標準では歴史改変できません
がMQという拡張機能を使えば
     できます。
MQを用いた歴史改変
リビジョンの取り消し

 hg strip リビジョン


取り消したリビジョンは.hg¥strip-backup
¥チェンジセットID-backup.hgにバックアップ
されるので復旧可能


他にもコミットコメントの修正や、コミットの並
び替えもできるけど結構面倒
まとめ
●   Subversionに慣れている人ならMercurialは使
    いやすい
●   混乱ポイントはhg updateとMultiple Heads
●   歴史改変はMQを使う

Osc mercurial-public