分散バージョン管理システムって何なん 20101218

22
前説 分散バージョン管理 システム ってなんなん ? O かもと

Upload: takashi-okamoto

Post on 17-Dec-2014

5.423 views

Category:

Technology


0 download

DESCRIPTION

Shibuya.trac分散バージョン管理システム勉強会前説

TRANSCRIPT

Page 1: 分散バージョン管理システムって何なん 20101218

前説分散バージョン管理

システムってなんなん ?

O かもと

Page 2: 分散バージョン管理システムって何なん 20101218

自己紹介

●Twitter: LightningX●TracLightningの開発者の一人●先進的な開発ツール、開発プロセスに●興味あり●現在TracLightning+エルシャダジャイル●プロセスにより開発の実験中

Page 3: 分散バージョン管理システムって何なん 20101218

エルシャダジャイル ?

Page 4: 分散バージョン管理システムって何なん 20101218

エルシャダジャイル =エルシャダイ + アジャイル

Page 5: 分散バージョン管理システムって何なん 20101218
Page 6: 分散バージョン管理システムって何なん 20101218

エルシャダジャイル

絶対流行りません

Page 7: 分散バージョン管理システムって何なん 20101218

TracLightning 3.0..の何処かのバージョンから

アジャイル対応はじめました !!

Page 8: 分散バージョン管理システムって何なん 20101218
Page 9: 分散バージョン管理システムって何なん 20101218

vers

OSS バージョン管理システムの発展

CVS Subversion分散バージョン管理

システム(Git,Mercurial,Bazaar)

アトミックなコミットフィーチャ・タスク単位の履歴管理楽観ロックの併用

共有モデルによるファイル管理ファイル単位の履歴管理上書きの回避・編集の競合のマージブランチによる並行開発

ブランチ・マージモデルローカルコミットローカルでの diff/ 履歴調査ログのリファクタリングマージトラッキング

Page 10: 分散バージョン管理システムって何なん 20101218

中央型モデルと分散型モデル

作業用のファイルのみ保持 クローンした各個人のリポジトリを保持

オフラインで作業可能競合の影響を受けにくいマージのトラッキングが可能フォークが楽

中央型 分散型

ロックができない中央リポジトリへの反映が 遅くなるフォークが乱立

分散バージョン管理のメリット / デメリット

Page 11: 分散バージョン管理システムって何なん 20101218

主な分散バージョン管理システム

Darcs

SVKCodeville

Monotone

GNU Arch

Page 12: 分散バージョン管理システムって何なん 20101218

Git

● Linux が利用していた BitKeeper のライセンスの問題により Linus Torvals により開発される。

● 採用プロジェクト● Linux Kernel,Ruby on Rails,Perl,Android,Gnome,

X.org,PostgreSQL,Chromium● 主に Ruby/Linux 系の開発者に多い

● フリーのホスティングサービス● GitHub ,Assembla,SourceForge.JP,CodeRepos

Page 13: 分散バージョン管理システムって何なん 20101218

● ローマ神話に登場する神マーキュリー ( 商業、盗賊、雄弁、学問の神 ) の形容詞。水銀 ( 元素記号 hg)

● 多数のスポンサー企業● 採用プロジェクト

● Python,OpenJDK,OpenSolaris,OpenOffice,NetBeans,Xen,Mozilla,Go 言語

● Oracle( 元 Sun) 系の OSS に多い● フリーのホスティングサービス

● BitBucket 、 SourceForge.JP 、 Assembla● Google Code 、 CodePlex

Page 14: 分散バージョン管理システムって何なん 20101218

Bazaar● Canonical LTD の支援のもと開発。● Gnu プロジェクト● 日本語のハンドリングが完璧● 採用プロジェクト

● Ubuntu, Mailman, MySQL, MariaDB, Bugzilla, Squid, Eucalyptus,OpenStack

● フリーのホスティングサービス● LaunchPad

Page 15: 分散バージョン管理システムって何なん 20101218

かんたんな比較表項目 Git Mercurial Bazaar

日本語対応(CUI)

コミットメッセージ

○ ○ ○

ファイル名 ○( 要設定 ) ○(cygwin+utf-8) ◎

リビジョン表示 ハッシュ ハッシュ / ナンバー ナンバー

プロキシ認証 ○ ○ ×

GUI Windows TortoiseGit TortoiseHg bazaar-explorer

MacOSX GitX/Tower MacHg bazaar-explorer

Linux qgit Hgtk,hgct bazaar-explorer

開発環境との統合

Eclipse EGit Mercurial Eclipse Eclipse Bzr

Visual Studio

Git Extensions

Mercurial SCC plugins for MS Visual Studio

Bazzar Integration for Visutal Studio

チケットシステム (ITS,BTS)の対応

Trac,JIRA,Redmine

Trac,JIRA,Redmine Trac,JIRA,Redmine

ホスティング GitHub,sf.jp,asembla

BitBucket,Google Codesf.jp

launchpad

Page 16: 分散バージョン管理システムって何なん 20101218

リビジョン表示commit 1746860854eabb319805718484327a9b05629abaAuthor: U-piccolo\okamototk <[email protected]>Date: Thu Dec 9 19:27:34 2010 +0900

テストのコミット。

changeset: 2:6ec235a59683tag: tipuser: okamototkdate: Thu Dec 09 19:19:54 2010 +0900summary: テストのコミット。

revno: 1committer: Takashi Okamoto<[email protected]>branch nick: win32apptimestamp: Thu 2010-12-10 18:56:26 +0900message: テストのコミット

Mercurial

Bazaar

Git

Mercurial と Bazaar は番号で表示できるので分かり易い

Page 17: 分散バージョン管理システムって何なん 20101218

Google TrendsMercurial

Bazzar

Git

Page 18: 分散バージョン管理システムって何なん 20101218

Google Trends( フランス ) Mercurial

Bazzar

Git

Page 19: 分散バージョン管理システムって何なん 20101218

Google Trends( 日本 )Mercurial

Bazzar

Git

Page 20: 分散バージョン管理システムって何なん 20101218

Google Trends(GUI)

TortoiseHgTortoiseGit

Eclipse MercurialEGIT

Page 21: 分散バージョン管理システムって何なん 20101218

まとめ

● ギークを目指すなら Git

● Linux/Ruby 系の人に多い● 分かり難いことこそ美徳だ

● 初心者とフランス好きには Mercurial をお勧め !!

● リビジョンが分かり易い● そこそこ実績も多いし、スポンサーがあり安心● TortoiseHg で Windows サポートもばっちり● ヨーロッパで人気があるので使ってればヨーロッパ出張とかあるか

も● Bazaar

● 日本語対応完璧● デメリットもあるので Subversion から移行しないことも検討しよう

Page 22: 分散バージョン管理システムって何なん 20101218

ご清聴ありがとうございました

こまかい話は後の人に任せた!!