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.

Bazaar

7,653 views

Published on

Published in: Travel
  • Be the first to comment

Bazaar

  1. 1. Bazaar INADA Naoki
  2. 2. 自己紹介 <ul><li>KLab 株式会社 K ラボラトリー </li></ul><ul><li>id:methane, @methane </li></ul><ul><li>得意 : C++, Python 苦手 : 英語 , 日本語 </li></ul><ul><li>誕生日 : 3/5 </li></ul><ul><li>こんなことやってます </li></ul><ul><ul><li>TortoiseBZR の開発 </li></ul></ul><ul><ul><li>Python ドキュメント翻訳 </li></ul></ul><ul><ul><li>Expert Python Programming 翻訳 </li></ul></ul>
  3. 3. Expert Python Programming <ul><li>Python の非入門本 </li></ul><ul><ul><li>イディオム </li></ul></ul><ul><ul><li>ドキュメント </li></ul></ul><ul><ul><li>テスト </li></ul></ul><ul><ul><li>パッケージング </li></ul></ul><ul><ul><li>配布、配置 </li></ul></ul><ul><ul><li>最適化 </li></ul></ul><ul><ul><li>デザインパターン </li></ul></ul>
  4. 4. 目次 <ul><li>分散バージョン管理について </li></ul><ul><li>Bazaar の紹介 </li></ul><ul><li>Bazaar vs Mercurial vs git </li></ul><ul><li>用語解説 </li></ul><ul><li>TortoiseBZR チュートリアル </li></ul>
  5. 5. 分散バージョン管理
  6. 6. バージョン管理 <ul><li>ファイルやディレクトリの変更履歴を管理 </li></ul><ul><ul><li>この部分だれが何のために追加した? </li></ul></ul><ul><ul><li>このバグってどのリリースからあった? </li></ul></ul><ul><ul><li>この機能っていつ入った? </li></ul></ul><ul><ul><li>改良前後のパフォーマンスを測定したい </li></ul></ul>
  7. 7. 分散バージョン管理 <ul><li>集中型 (svn, cvs) </li></ul><ul><ul><li>履歴は全部サーバーで管理 </li></ul></ul><ul><ul><li>サーバーとつながらないと使えない </li></ul></ul><ul><ul><li>外部の人が参加しにくい </li></ul></ul><ul><li>分散型 (git, hg, bzr) </li></ul><ul><ul><li>各自が履歴を持つ </li></ul></ul><ul><ul><li>ローカルで使える </li></ul></ul><ul><ul><li>外部の人も参加しやすい </li></ul></ul>
  8. 8. Bazaar
  9. 9. 主な利用者 <ul><li>Bazaar </li></ul><ul><li>Ubuntu Linux </li></ul><ul><li>MySQL </li></ul><ul><li>Emacs </li></ul><ul><li>squid, inkscape, ... </li></ul>
  10. 10. Bazaar <ul><li>Canonical がスポンサー </li></ul><ul><li>GNU Project の一つ </li></ul><ul><li>Python 製 </li></ul><ul><li>略称、コマンド名は bzr </li></ul>
  11. 11. bzr vs hg vs git <ul><li>人気 </li></ul><ul><ul><li>git > hg >> bzr </li></ul></ul><ul><li>タイプのしやすさ </li></ul><ul><ul><li>hg > git > bzr </li></ul></ul><ul><li>速度 </li></ul><ul><ul><li>git > hg >= bzr </li></ul></ul><ul><li>サイズ </li></ul><ul><ul><li>git <= bzr < hg </li></ul></ul><ul><ul><li>運用によっては bzr < git < hg </li></ul></ul>
  12. 12. bzr vs hg vs git × ○ ○ Python △ ○ ◎ リネーム / 移動 管理しない 管理しない 管理する ディレクトリ バイト列 バイト列 Unicode ファイル名 git hg bzr
  13. 13. bzr の特徴 : Windows サポート <ul><li>ファイル名が Unicode </li></ul><ul><ul><li>SJIS の (0x5c) 問題 </li></ul></ul><ul><ul><li>非 ASCII ファイル名を別の環境と相互運用可能 </li></ul></ul><ul><li>ファイルの glob なども 2.1 からサポート </li></ul><ul><li>TortoiseBZR </li></ul><ul><li>Bazaar Explorer </li></ul>
  14. 14. bzr の特徴 : ファイルトラッキング <ul><li>file-id を割り当てて同一性を管理する </li></ul><ul><li>ファイル名が変更されていたときのマージが強力 </li></ul>
  15. 15. bzr の特徴 : 構成の柔軟性 <ul><li>リポジトリ、ブランチ、作業ディレクトリが分離している </li></ul><ul><li>ディスク、ネットワーク利用効率を上げる仕組み </li></ul>
  16. 16. 用語解説
  17. 17. 用語解説:ツリー <ul><li>ルートディレクトリ </li></ul><ul><li>ファイル </li></ul><ul><li>サブディレクトリ </li></ul>
  18. 18. 用語解説:リビジョン <ul><li>あるツリーのスナップショット </li></ul><ul><li>追加情報 </li></ul><ul><ul><li>コミットした人 </li></ul></ul><ul><ul><li>メッセージ </li></ul></ul><ul><ul><li>コミットした日時 </li></ul></ul><ul><ul><li>親リビジョン(複数の場合もある) </li></ul></ul>
  19. 19. 用語解説: ブランチ <ul><li>一連のリビジョン </li></ul><ul><li>ひとつのリビジョンが「最新」 </li></ul><ul><li>最新以外のリビジョンは、最新のリビジョンの祖先 </li></ul>
  20. 20. 用語解説: 作業ツリー <ul><li>ブランチの最新リビジョンをファイルシステム上に展開(= チェックアウト )したもの </li></ul><ul><li>変更・削除・追加などの作業をする </li></ul>
  21. 21. 用語解説: コミット <ul><li>作業ツリーから新たなリビジョンを作る </li></ul><ul><li>作成したリビジョンがブランチの最新リビジョンになる </li></ul>
  22. 22. 用語解説: リポジトリ <ul><li>リビジョンを格納する場所 </li></ul>
  23. 23. 用語解説: マージ <ul><li>二つのブランチを統合するリビジョンを作る </li></ul>
  24. 24. チュートリアル <ul><li>ドキュメント(翻訳中) </li></ul><ul><ul><li>http://doc.bazaar.canonical.com/ja/ </li></ul></ul><ul><ul><li>http:// doc.bazaar.canonical.com /en/ </li></ul></ul>
  25. 25. TortoiseBZR
  26. 26. TortoiseBZR <ul><li>Windowsのシェル拡張 </li></ul><ul><ul><li>コンテキストメニュー </li></ul></ul><ul><ul><li>アイコンオーバーレイ </li></ul></ul><ul><li>GUIコンポーネントは別のライブラリを利用 </li></ul>
  27. 27. ローカルでバージョン管理編 <ul><li>init </li></ul><ul><li>add </li></ul><ul><li>commit </li></ul><ul><li>log </li></ul><ul><li>delete </li></ul>
  28. 28. ブランチ操作 <ul><li>ブランチ作成 </li></ul><ul><li>マージ </li></ul><ul><li>コミット </li></ul><ul><li>push/pull </li></ul>

×