Bazaar

7,413 views

Published on

Published in: Travel
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,413
On SlideShare
0
From Embeds
0
Number of Embeds
4,914
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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>

×