subversionでバージョン管理を!
DESCRIPTION
WBC2008夏TRANSCRIPT
Subversionでバージョン管理を!
株式会社ヌーラボ 山本竜三
自己紹介
• 山本 竜三(やまもと りゅうぞう)• 株式会社ヌーラボのプログラマ
–Backlogを作って動かしています•プロジェクト管理ツール•課題管理・Wiki・Subversion・ファイル共有
• dragon3
目標
みなさんがSubversionを使いたくて
しょうがなくなる!
今日お話すること
• バージョン管理って?• Subversionって?• Subversionを使った作業って?• まとめ
では、さっそく
バージョン管理とは何か?
バージョン管理とは?
良い感じのバックアップ( 良い感じがミソ )
良い感じ
credit: bobbigmac
良い感じでないと…その1
• 名前に日付が入ったフォルダ
どこがどう変わったん?
良い感じでないと…その1
• 名前に日付が入ったファイル
どれが必要なもの?
• お客様に
間違って上書きしてしまったので、元に戻してね
と言われたけど…
良い感じでないと…その2
良い感じでないと…その3
• 複数人での作業で混乱 index.html
index.htmlindex.html
良くないですね困ります
そこでバージョン管理
バージョン管理すると
• “最新”や”いつかの”をすぐ用意できる• 変更履歴を見れる• だれかの変更を上書きしてしまわない
↓
安心して日々の作業に打ち込めます!
良い感じ
どうすればできるの?
“バージョン管理システム”を使うと
バージョン管理できる
そこでSubversion
Subversionって?
• バージョン管理システム• オープンソース
http://subversion.tigris.org
• 広く使われており標準的• “SVN”とも呼ばれる
Subversionの構成
ネットワーク
Subversionの構成
Subversionサーバ
Subversionクライアント
Subversionサーバ
• 自分でインストール・運用する– 社内サーバに設置する など
• サービスを利用する– Backlog– Google Code– beanstalk
• オープンなもの– codecheck.in– coderepos
Subversionクライアント
• Windows– TortoiseSVN
• Mac OSX– SCPlugin– Versions
• 共通– コマンド– Dreamweaver CS4– Eclipse
リポジトリと作業コピー
リポジトリと作業コピー
リポジトリ作業コピー
リポジトリ
サーバ上にあり変更の内容が
記録されていくところ
作業コピー
自分のPC上にありファイルの追加や変更などを
行うところ
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
くりかえし
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
← ここ
リポジトリ作成
ここを作る
リポジトリ作成
• サーバ上でコマンドで作成したりします
•Backlogならブラウザから作成できます
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
← ここ
インポート
インポート
• すでにバージョン管理したいファイルがある場合に、それらをリポジトリに登録
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
← ここ
チェックアウト
作業コピー
チェックアウト
• リポジトリからフォルダやファイルをダウンロードして作業コピーを作成
• 作業する人それぞれが行います
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
← ここ
編集
• 普段の作業です– HTMLを編集して保存– あたらしい画像ファイルを追加– cssに属性追加– 使わなくなったファイルを削除
などなど
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
← ここ
コミット
コミット
• 作業コピーで行った変更をリポジトリに反映
• 編集した内容をアップロードするイメージ
• チェックインっても言います
リビジョン番号
コミットすると番号付けされます||
リビジョン番号1 2 31 2 3
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート ← ここ
アップデート
アップデート
• リポジトリにある他の人の変更内容を作業コピーに反映
Subversionでの作業の流れ
リポジトリ作成↓
インポート↓
チェックアウト↓
編集↓
コミット↓
アップデート
くりかえし
バージョン管理すると (再)
• “最新”や”いつかの”をすぐ用意できる• 変更履歴を見れる• だれかの変更を上書きしてしまわない
↓
安心して日々の作業に打ち込めます!
良い感じ
良い感じが見えない…
良い感じのための機能
• ログ• 差分• 競合(コンフリクト)と解決
ログ
• ファイルやディレクトリの変更履歴
差分
• ファイルやディレクトリ間の違い
ログ+チェックアウト
• リビジョンを指定してチェックアウト
1 2 3
“最新”や”いつかの”をすぐ用意できる
変更履歴を見れる
競合(コンフリクト)と解決
• だれかの変更を上書きしてしまわない
コミットindex.html
index.html
コミット失敗
ボブが変更済なのでコミットできないよ!
競合(コンフリクト)と解決
• Subversionならアップデートすればできるだけ自動で解決– 変更箇所が違う場合など
競合(コンフリクト)と解決
• 自動で無理な場合でも…↓
• マージエディタで解決!– TortoiseMerge (TortoiseSVNに付属)– 差分を確認しながら編集
無理っす!
コンフリクトと解決
• TortoiseMerge (TortoiseSVNに付属)
“最新”や”いつかの”をすぐ用意できる
変更履歴を見れる
だれかの変更を上書きしてしまわない
SubversionとDreamweaverCS4
• 必要最低限の機能を提供– チェックアウトやコミット
• 他のツールとの連携で強力に
×
さらに先へ
• なんでもバージョン管理していいと思います– 画像ファイル– サーバ設定ファイル–提案書、見積書
さらに先へ
• リポジトリディレクトリ構成– trunk、tags、branches
•タグ付け– あとで見付けやすいようにタグ(付箋)付け
• コミットメッセージ– 書いておくとGood
さらに先へ (書籍)
• 入門Subversion
• Subversion実践入門達人プログラマに学ぶバージョン管理
さらに先へ (書籍)
• Subversionによるバージョン管理http://svnbook.red-bean.com/
• 構成管理 実践入門http://www.nulab.co.jp/kousei/chapter1/01.html
まとめ
• バージョン管理しましょう– 安心して作業に打ち込めます– 良い感じの機能を有効に使うと強力です
•Subversionは標準的なバージョン管理システムです
•Subversionが楽に導入できるBacklogをぜひ使ってください
ご清聴ありがとうございました