subversionでバージョン管理を!

64
Subversionバージョン管理を! 株式会社ヌーラボ 山本竜三

Upload: ryuzo-yamamoto

Post on 14-Dec-2014

9.151 views

Category:

Technology


1 download

DESCRIPTION

WBC2008夏

TRANSCRIPT

Page 1: Subversionでバージョン管理を!

Subversionでバージョン管理を!

株式会社ヌーラボ 山本竜三

Page 2: Subversionでバージョン管理を!

自己紹介

• 山本 竜三(やまもと りゅうぞう)• 株式会社ヌーラボのプログラマ

–Backlogを作って動かしています•プロジェクト管理ツール•課題管理・Wiki・Subversion・ファイル共有

• dragon3

Page 3: Subversionでバージョン管理を!

目標

みなさんがSubversionを使いたくて

しょうがなくなる!

Page 4: Subversionでバージョン管理を!

今日お話すること

• バージョン管理って?• Subversionって?• Subversionを使った作業って?• まとめ

Page 5: Subversionでバージョン管理を!

では、さっそく

Page 6: Subversionでバージョン管理を!

バージョン管理とは何か?

Page 7: Subversionでバージョン管理を!

バージョン管理とは?

良い感じのバックアップ( 良い感じがミソ )

良い感じ

credit: bobbigmac

Page 8: Subversionでバージョン管理を!

良い感じでないと…その1

• 名前に日付が入ったフォルダ

どこがどう変わったん?

Page 9: Subversionでバージョン管理を!

良い感じでないと…その1

• 名前に日付が入ったファイル

どれが必要なもの?

Page 10: Subversionでバージョン管理を!

• お客様に

間違って上書きしてしまったので、元に戻してね

と言われたけど…

良い感じでないと…その2

Page 11: Subversionでバージョン管理を!

良い感じでないと…その3

• 複数人での作業で混乱 index.html

index.htmlindex.html

Page 12: Subversionでバージョン管理を!

良くないですね困ります

Page 13: Subversionでバージョン管理を!

そこでバージョン管理

Page 14: Subversionでバージョン管理を!

バージョン管理すると

• “最新”や”いつかの”をすぐ用意できる• 変更履歴を見れる• だれかの変更を上書きしてしまわない

安心して日々の作業に打ち込めます!

良い感じ

Page 15: Subversionでバージョン管理を!

どうすればできるの?

“バージョン管理システム”を使うと

バージョン管理できる

Page 16: Subversionでバージョン管理を!

そこでSubversion

Page 17: Subversionでバージョン管理を!

Subversionって?

• バージョン管理システム• オープンソース

http://subversion.tigris.org

• 広く使われており標準的• “SVN”とも呼ばれる

Page 18: Subversionでバージョン管理を!

Subversionの構成

ネットワーク

Page 19: Subversionでバージョン管理を!

Subversionの構成

Subversionサーバ

Subversionクライアント

Page 20: Subversionでバージョン管理を!

Subversionサーバ

• 自分でインストール・運用する– 社内サーバに設置する など

• サービスを利用する– Backlog– Google Code– beanstalk

• オープンなもの– codecheck.in– coderepos

Page 21: Subversionでバージョン管理を!

Subversionクライアント

• Windows– TortoiseSVN

• Mac OSX– SCPlugin– Versions

• 共通– コマンド– Dreamweaver CS4– Eclipse

Page 22: Subversionでバージョン管理を!

リポジトリと作業コピー

Page 23: Subversionでバージョン管理を!

リポジトリと作業コピー

リポジトリ作業コピー

Page 24: Subversionでバージョン管理を!

リポジトリ

サーバ上にあり変更の内容が

記録されていくところ

Page 25: Subversionでバージョン管理を!

作業コピー

自分のPC上にありファイルの追加や変更などを

行うところ

Page 26: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

くりかえし

Page 27: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

← ここ

Page 28: Subversionでバージョン管理を!

リポジトリ作成

ここを作る

Page 29: Subversionでバージョン管理を!

リポジトリ作成

• サーバ上でコマンドで作成したりします

•Backlogならブラウザから作成できます

Page 30: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

← ここ

Page 31: Subversionでバージョン管理を!

インポート

Page 32: Subversionでバージョン管理を!

インポート

• すでにバージョン管理したいファイルがある場合に、それらをリポジトリに登録

Page 33: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

← ここ

Page 34: Subversionでバージョン管理を!

チェックアウト

作業コピー

Page 35: Subversionでバージョン管理を!

チェックアウト

• リポジトリからフォルダやファイルをダウンロードして作業コピーを作成

• 作業する人それぞれが行います

Page 36: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

← ここ

Page 37: Subversionでバージョン管理を!

編集

• 普段の作業です– HTMLを編集して保存– あたらしい画像ファイルを追加– cssに属性追加– 使わなくなったファイルを削除

などなど

Page 38: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

← ここ

Page 39: Subversionでバージョン管理を!

コミット

Page 40: Subversionでバージョン管理を!

コミット

• 作業コピーで行った変更をリポジトリに反映

• 編集した内容をアップロードするイメージ

• チェックインっても言います

Page 41: Subversionでバージョン管理を!

リビジョン番号

コミットすると番号付けされます||

リビジョン番号1 2 31 2 3

Page 42: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート ← ここ

Page 43: Subversionでバージョン管理を!

アップデート

Page 44: Subversionでバージョン管理を!

アップデート

• リポジトリにある他の人の変更内容を作業コピーに反映

Page 45: Subversionでバージョン管理を!

Subversionでの作業の流れ

リポジトリ作成↓

インポート↓

チェックアウト↓

編集↓

コミット↓

アップデート

くりかえし

Page 46: Subversionでバージョン管理を!

バージョン管理すると (再)

• “最新”や”いつかの”をすぐ用意できる• 変更履歴を見れる• だれかの変更を上書きしてしまわない

安心して日々の作業に打ち込めます!

良い感じ

Page 47: Subversionでバージョン管理を!

良い感じが見えない…

Page 48: Subversionでバージョン管理を!

良い感じのための機能

• ログ• 差分• 競合(コンフリクト)と解決

Page 49: Subversionでバージョン管理を!

ログ

• ファイルやディレクトリの変更履歴

Page 50: Subversionでバージョン管理を!

差分

• ファイルやディレクトリ間の違い

Page 51: Subversionでバージョン管理を!

ログ+チェックアウト

• リビジョンを指定してチェックアウト

1 2 3

Page 52: Subversionでバージョン管理を!

“最新”や”いつかの”をすぐ用意できる

変更履歴を見れる

Page 53: Subversionでバージョン管理を!

競合(コンフリクト)と解決

• だれかの変更を上書きしてしまわない

コミットindex.html

index.html

コミット失敗

ボブが変更済なのでコミットできないよ!

Page 54: Subversionでバージョン管理を!

競合(コンフリクト)と解決

• Subversionならアップデートすればできるだけ自動で解決– 変更箇所が違う場合など

Page 55: Subversionでバージョン管理を!

競合(コンフリクト)と解決

• 自動で無理な場合でも…↓

• マージエディタで解決!– TortoiseMerge (TortoiseSVNに付属)– 差分を確認しながら編集

無理っす!

Page 56: Subversionでバージョン管理を!

コンフリクトと解決

• TortoiseMerge (TortoiseSVNに付属)

Page 57: Subversionでバージョン管理を!

“最新”や”いつかの”をすぐ用意できる

変更履歴を見れる

だれかの変更を上書きしてしまわない

Page 58: Subversionでバージョン管理を!

SubversionとDreamweaverCS4

• 必要最低限の機能を提供– チェックアウトやコミット

• 他のツールとの連携で強力に

×

Page 59: Subversionでバージョン管理を!

さらに先へ

• なんでもバージョン管理していいと思います– 画像ファイル– サーバ設定ファイル–提案書、見積書

Page 60: Subversionでバージョン管理を!

さらに先へ

• リポジトリディレクトリ構成– trunk、tags、branches

•タグ付け– あとで見付けやすいようにタグ(付箋)付け

• コミットメッセージ– 書いておくとGood

Page 61: Subversionでバージョン管理を!

さらに先へ (書籍)

• 入門Subversion

• Subversion実践入門達人プログラマに学ぶバージョン管理

Page 62: Subversionでバージョン管理を!

さらに先へ (書籍)

• Subversionによるバージョン管理http://svnbook.red-bean.com/

• 構成管理 実践入門http://www.nulab.co.jp/kousei/chapter1/01.html

Page 63: Subversionでバージョン管理を!

まとめ

• バージョン管理しましょう– 安心して作業に打ち込めます– 良い感じの機能を有効に使うと強力です

•Subversionは標準的なバージョン管理システムです

•Subversionが楽に導入できるBacklogをぜひ使ってください

Page 64: Subversionでバージョン管理を!

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