Vcsは分散型へ

1,022 views
927 views

Published on

第4回走る?それともITトークする会の資料です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Vcsは分散型へ

  1. 1. バージョン管理システム (VCS) は 分散型 へ 2010.4.28 @masutaka
  2. 2. @masutaka の 独断 と 偏見 による内容のため、注意して下さい。
  3. 3. 目次 <ul><ul><li>リポジトリなし </li></ul></ul><ul><ul><li>集中型 </li></ul></ul><ul><ul><li>分散型 </li></ul></ul><ul><ul><li>分散型 VCS がもたらすもの </li></ul></ul>
  4. 4. リポジトリ なし
  5. 5. VCS 登場以前の一例 <ul><ul><li>diff コマンドでソフトウェアの修正内容をお知らせ。 </li></ul></ul><ul><ul><li>patch コマンドで修正内容を取り込む。 </li></ul></ul>修正履歴を管理したいという要望があったはず。
  6. 6. RCS の登場 <ul><ul><li>1 つの patch が 1 つのリビジョンに相当。 </li></ul></ul><ul><ul><li>commit するとリビジョンが一つ上がる。 </li></ul></ul><ul><ul><li>編集にはロックが必要。 </li></ul></ul><ul><ul><li>基本的に個人向け だが、過去に大規模プロジェクトで使用された実績あり。 </li></ul></ul>
  7. 7. 集中型
  8. 8. CVS の登場 <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>
  9. 9. CVS の 問題 <ul><ul><li>ファイルやディレクトリ名の変更削除を記録できない。 </li></ul></ul><ul><ul><li>リポジトリ全体の履歴を知り辛い。 </li></ul></ul><ul><ul><li>バイナリファイルの扱いが下手。 </li></ul></ul><ul><ul><li>アトミックな commit が出来ない。 </li></ul></ul>
  10. 10. SVN の登場 <ul><ul><li>ファイルやディレクトリのリネームに対応。 </li></ul></ul><ul><ul><li>変更を加えるとツリー全体のリビジョンが上がる。 </li></ul></ul><ul><ul><li>作業ディレクトリに、リポジトリの最新のコピーを持つ。 </li></ul></ul><ul><ul><li>バイナリファイルを適切に推測 </li></ul></ul>
  11. 11. SVN の 問題 <ul><ul><li>遅い </li></ul></ul><ul><ul><li>作業コピーの互換性 </li></ul></ul><ul><ul><li>集中型であるが故に、常にリポジトリと同期を取る必要がある。 </li></ul></ul>
  12. 12. 分散型
  13. 13. 分散型 VCS の登場 <ul><ul><li>Git </li></ul></ul><ul><ul><ul><li>Linus Torvals 氏 </li></ul></ul></ul><ul><ul><ul><li>現在のメンテナーは濱野純氏 </li></ul></ul></ul><ul><ul><li>Mercurial </li></ul></ul><ul><ul><ul><li>Matt Mackall 氏 </li></ul></ul></ul><ul><ul><li>Bazzar </li></ul></ul><ul><ul><ul><li>GNU プロジェクト </li></ul></ul></ul>
  14. 14. 集中型と分散型 の違い <ul><ul><li>http://design1.chu.jp/setucocms-pjt/?p=72 </li></ul></ul><ul><ul><li>http://design1.chu.jp/setucocms-pjt/?p=132 </li></ul></ul>
  15. 15. GitHub <ul><ul><li>Git のホスティングサービス </li></ul></ul><ul><ul><li>Web 上から Git リポジトリの作成と公開が可能。 </li></ul></ul><ul><ul><li>例 </li></ul></ul><ul><ul><ul><li>http://github.com/masutaka </li></ul></ul></ul>
  16. 16. 分散型 VCS がもたらすもの <ul><ul><li>他の開発者を邪魔しない。 </li></ul></ul><ul><ul><li>集中型 VCS を独り占め。 </li></ul></ul><ul><ul><li>いつでもどこでも開発できる。 </li></ul></ul>
  17. 17. 参考情報 <ul><li>http://ja.wikipedia.org/ </li></ul><ul><li>http://design1.chu.jp/setucocms-pjt/ </li></ul>

×