Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

dvcs-kyoto

2,905 views

Published on

分散型バージョン管理システム勉強会@京都

  • Be the first to comment

dvcs-kyoto

  1. 1. Mercurialワークショップ 分散型バージョン管理システム勉強会@京都 2011-07-23
  2. 2. 自己紹介● 稲田 尚也 (@naoina)● ガラスの十代 (0x19歳)● 京都のPythonista● https://bitbucket.org/naoina● 面白い勉強会あれば教えてください
  3. 3. Mercurialとは
  4. 4. Mercurialとは● バージョン管理システムの1つ● DVCS● 実装はPython (一部C言語)● 読みは「まーきゅりある」
  5. 5. Mercurialとは● バージョン管理システムの1つ● DVCS● 実装はPython (一部C言語)● 読みは「まーきゅりある」
  6. 6. Mercurialとは● コマンド名は「hg」
  7. 7. Mercurialとは● コマンド名は「hg」
  8. 8. Mercurialとは● コマンド名は「hg」● Mercurial = 水銀 = hg
  9. 9. Mercurialとは● コマンド名は「hg」● Mercurial = 水銀 = hg
  10. 10. Mercurial使用プロジェクト● Python● Vim● Mozilla● OpenSolaris● OpenJDK● etc...
  11. 11. DVCSとは● Distributed Version Control System● 分散バージョン管理システム● SubversionやCVSは中央集中型● SCMという言葉もあります● Source Code Management
  12. 12. DVCSの特徴
  13. 13. DVCSの特徴● サーバーを立てる必要がない – リポジトリがローカルだけで完結できる!● ネットワークに繋がってなくてもいい – svn logとかイライラしますよね?● 脅威の冗長性 – 全てのリポジトリが中央リポジトリ!
  14. 14. Mercurial
  15. 15. 設定
  16. 16. 設定.hgrcを編集 – Unix系: $HOME/.hgrc – Windows: %USERPROFILE%¥Mercurial.ini
  17. 17. 設定.hgrc[ui]username = Naoya INADA <naoina@kuune.org>[extensions]color =graphlog =
  18. 18. Mercurialの使い方
  19. 19. Mercurialの使い方1. リポジトリの作成2. ファイルの追加3. ファイルの変更4. コミット5. コミットの確認
  20. 20. リポジトリの作成hg init
  21. 21. ファイルの追加hg add
  22. 22. ファイルの変更hg remove hg copyhg rename
  23. 23. コミットhg commit
  24. 24. コミットの確認hg log
  25. 25. ここまでの内容で質問あればどうぞ
  26. 26. 続・Mercurialの使い方6. リポジトリの複製7. 変更の確認8. 変更の取り消し9. 変更の取り込み10. 作業スペースの更新11. マージ12. 変更の反映
  27. 27. リポジトリの複製hg clone
  28. 28. http://dvcskyoto.naniyueni.org/
  29. 29. 変更の確認 hg statushg summary hg diff
  30. 30. コマンドのエイリアス● ここでいう `コマンド` は この部分 % hg status
  31. 31. コマンドのエイリアス% hg status% hg stat% hg st% hg shg: command s is ambiguous: serve showconfig status summary
  32. 32. 変更の取り消しhg revert
  33. 33. 変更の取り込みhg incoming hg pull
  34. 34. 作業スペースの更新hg update
  35. 35. マージhg mergehg resolve
  36. 36. 無名ブランチ● 変更がコンフリクトした場合に勝手に名 前の無いブランチが作られる default changeset:1 changeset:2
  37. 37. 無名ブランチ● 変更がコンフリクトした場合に勝手に名 前の無いブランチが作られる changeset:2a default changeset:1 changeset:2
  38. 38. 無名ブランチ● 変更がコンフリクトした場合に勝手に名 前の無いブランチが作られる changeset:2a default changeset:1 changeset:2 changeset:3 changeset:4 (2a)
  39. 39. 変更の反映hg outgoing hg push
  40. 40. ここまでの内容で質問あればどうぞ
  41. 41. 拡張機能● MQ [http://mercurial.selenic.com/wiki/JapaneseMqExtension] – スイスアーミーナイフ – パッチ管理やコミットの削除、改変など● Rebase [http://mercurial.selenic.com/wiki/RebaseExtension] – 伝家の宝刀 – mergeの代わりにrebase – 知らないでは済まされない
  42. 42. 拡張機能● Bookmarks [http://mercurial.selenic.com/wiki/BookmarksExtension] – チェンジセットへの削除可能なポインタが作れる● Record [http://mercurial.selenic.com/wiki/RecordExtension] – ファイル中の変更を選択してコミットできる● Transplant [http://mercurial.selenic.com/wiki/TransplantExtension] – 特定チェンジセットだけを移植できる
  43. 43. Mercurial vs Git
  44. 44. 履歴の指定
  45. 45. 履歴の指定Mercurial – ハッシュ – リビジョン番号
  46. 46. 履歴の指定Mercurial – ハッシュ – リビジョン番号Git – ハッシュのみ
  47. 47. Extension vs All-In-One
  48. 48. Extension vs All-In-OneMercurial – 包丁 – 足りない機能は拡張機能で個別に追加
  49. 49. Extension vs All-In-OneMercurial – 包丁 – 足りない機能は拡張機能で個別に追加Git – スイスアーミーナイフ – 最初からなんでもできる
  50. 50. pullの動作
  51. 51. pullの動作Mercurial – 作業スペースの更新はしない
  52. 52. pullの動作Mercurial – 作業スペースの更新はされないGit – 作業スペースの更新が自動でされる – hg pull -u
  53. 53. タイプ数
  54. 54. タイプ数Mercurial – hg – 2文字
  55. 55. タイプ数Mercurial – hg – 2文字Git – git – 3文字
  56. 56. タイプ数Mercurial 10万回コマンドを打鍵 hg → 200000文字 – hg git → 300000文字 – 2文字Git – git – 3文字
  57. 57. タイプ数Mercurial 10万回コマンドを打鍵 hg → 200000文字 – hg git → 300000文字 – 2文字 7key/secで打鍵しても hg → 約28571秒Git git → 約42857秒 – git – 3文字
  58. 58. タイプ数Mercurial 10万回コマンドを打鍵 hg → 200000文字 – hg git → 300000文字 – 2文字 7key/secで打鍵しても hg → 約28571秒Git git → 約42857秒 – git 約14286秒の差! – 3文字 (約4時間)
  59. 59. http://mercurial.selenic.com/wiki/GitConcepts
  60. 60. 質疑応答
  61. 61. ありがとうございました

×