Weitere ähnliche Inhalte
Ähnlich wie バージョン管理#01 -Subversion編- (20)
Mehr von hakoika-itwg (6)
Kürzlich hochgeladen (11)
バージョン管理#01 -Subversion編-
- 1. はこだてIKA 夜間勉強会
バージョン管理
- Subversion 編 -
skomatsu
facebook.com/comutt, @comutt, id:comutt
atWare, Inc.
February 28, 2013
- 3. Google Code
• URL: https://code.google.com/p/vcs01-svn/
• Wiki:
• https://code.google.com/p/vcs01-svn/wiki/
VCS01
• https://code.google.com/p/vcs01-svn/wiki/
SubversionLinks
• リンク集は、TortoiseSVN以外にも追加し
ておきます
- 7. ver.1
<html>
</html>
ver.2
<html>
<body>
</body>
</html>
ver.3
<html>
<body>
<h1>HTML</h1>
</body>
</html>
- 12. 人力バージョン管理
2/1 に作った初版。
index.html.20130201
日付をつけた。
2/1 に作った第2版。
index.html.20130201_02
日付だとかぶるので少し変化。
- 13. 人力バージョン管理
2/1 に作った初版。
index.html.20130201
日付をつけた。
2/1 に作った第2版。
index.html.20130201_02
日付だとかぶるので少し変化。
直前のバージョン。
index.html.bak
安易に .bak にリネームした。
- 14. 人力バージョン管理
2/1 に作った初版。
index.html.20130201
日付をつけた。
2/1 に作った第2版。
index.html.20130201_02
日付だとかぶるので少し変化。
直前のバージョン。
index.html.bak
安易に .bak にリネームした。
最新版 index.html
- 20. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
• 合わせ技(YYYYMMDD_01など)
- 21. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
• 合わせ技(YYYYMMDD_01など)
• 人依存なのでファイルごとにばらばらになっ
たりする
- 22. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
• 合わせ技(YYYYMMDD_01など)
• 人依存なのでファイルごとにばらばらになっ
たりする
• index.html.01
- 23. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
• 合わせ技(YYYYMMDD_01など)
• 人依存なのでファイルごとにばらばらになっ
たりする
• index.html.01
• index.css.20130201
- 24. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
• 合わせ技(YYYYMMDD_01など)
• 人依存なのでファイルごとにばらばらになっ
たりする
• index.html.01
• index.css.20130201
• main.js.test
- 25. • バージョンの表現規則が人依存
• 日付(YYYYMMDDなど)
• 人力インクリメント(_01, _02など)
★ • 合わせ技(YYYYMMDD_01など)
複数人の作業で人数が増えるほどカオスに
• 人依存なのでファイルごとにばらばらになっ
★統一を図るのは不可能
たりする
• index.html.01
• index.css.20130201
• main.js.test
- 30. • ファイル単位
• index.html.01
• index.css.20130201
- 31. • ファイル単位
• index.html.01
• index.css.20130201
• main.js.test
- 32. • ファイル単位
• index.html.01
• index.css.20130201
• main.js.test
• ディレクトリ単位
- 33. • ファイル単位
• index.html.01
• index.css.20130201
• main.js.test
• ディレクトリ単位
• images.bak/
- 34. • ファイル単位
• index.html.01
• index.css.20130201
• main.js.test
• ディレクトリ単位
• images.bak/
• js.old/
- 35. • ファイル単位
• index.html.01
• index.css.20130201
• main.js.test
• ディレクトリ単位
• images.bak/
• js.old/
• css/20130201/
- 36. • ファイル単位
• index.html.01
★バージョンの管理単位がばらばら
• index.css.20130201
★特定のバージョンに一括で戻すのが困難
• main.js.test
★• ディレクトリ単位
リリース後バグが判明したので切り戻したい
• images.bak/
★過去のリリースバージョンを参照したい
• js.old/
• css/20130201/
- 41. • ファイルサーバで共有
• 自分の作業場所: C:¥project¥hoge
• 共有場所: ¥¥Server¥project¥hoge
- 42. • ファイルサーバで共有
• 自分の作業場所: C:¥project¥hoge
• 共有場所: ¥¥Server¥project¥hoge
• 共有タイミングが人依存
- 43. • ファイルサーバで共有
• 自分の作業場所: C:¥project¥hoge
• 共有場所: ¥¥Server¥project¥hoge
• 共有タイミングが人依存
• 同時編集の可能性
- 44. • ファイルサーバで共有
★複数人の作業では共有が困難
• 自分の作業場所: C:¥project¥hoge
★Aさんの変更が、
• 共有場所: ¥¥Server¥project¥hoge
Bさんによって上書きされてしまうリスク
• 共有タイミングが人依存
★ソースコードが壊れてしまうリスク
• 同時編集の可能性
- 48. • コメントで履歴管理
• <!-- 2013/02/03 skomatsu
スライドショーを追加 -->
- 49. • コメントで履歴管理
• <!-- 2013/02/03 skomatsu
スライドショーを追加 -->
• <!-- 2013/02/04 ishikawa
スライドショーを修正 -->
- 50. • コメントで履歴管理
• <!-- 2013/02/03 skomatsu
スライドショーを追加 -->
• <!-- 2013/02/04 ishikawa
スライドショーを修正 -->
• <!-- 2013/02/05 matsudate
下記バグあり。コメントアウト -->
- 51. • コメントで履歴管理
• <!-- 2013/02/03 skomatsu
★履歴管理がカオスに
スライドショーを追加 -->
★差分なんて見れたものではない
• <!-- 2013/02/04 ishikawa
スライドショーを修正 -->
★誰が、いつ、何の変更をしたか、が不明確
• <!-- 2013/02/05 matsudate
下記バグあり。コメントアウト -->
- 56. • 保守チーム
• バグフィックスなどの修正
• 新機能A開発チーム
- 57. • 保守チーム
• バグフィックスなどの修正
• 新機能A開発チーム
• 機能追加開発
- 58. • 保守チーム
• バグフィックスなどの修正
• 新機能A開発チーム
• 機能追加開発
• 新機能B開発チーム
- 59. • 保守チーム
• バグフィックスなどの修正
• 新機能A開発チーム
• 機能追加開発
• 新機能B開発チーム
• Aチームとは別の機能追加開発
- 60. ★
•複数チームが同時開発すると、
保守チーム
• バグフィックスなどの修正
バッティングすることがあるので、
•コードベースを分けたい
新機能A開発チーム
★分けて開発
• 機能追加開発
★一本化しようとしたら、マージ地獄
• 新機能B開発チーム
★マージし終わっても、あとから見ると出生不明
• Aチームとは別の機能追加開発
- 68. 種類
• 集中管理型
ref: http://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
- 69. 種類
• 分散型
ref: http://www.atmarkit.co.jp/fjava/rensai4/devtool03/devtool03_1.html
- 71. 種類
• 集中管理型(一例)
• フリー: Subversion, CVS
• 商用: Perforce, Team Foundation Server
Clear Case, Visual SourceSafe
- 72. 種類
• 集中管理型(一例)
• フリー: Subversion, CVS
• 商用: Perforce, Team Foundation Server
Clear Case, Visual SourceSafe
• 分散型(一例)
• フリー: Git, Mercurial, Bazaar, Monotone
• 商用: BitKeeper, Code Co-op, Synergy
- 75. 仕組み
①(最新版)取得
作業コピー リポジトリ
- 76. 仕組み
①(最新版)取得
作業コピー リポジトリ
②変更
- 77. 仕組み
③登録
①(最新版)取得
作業コピー リポジトリ
②変更
- 78. 仕組み
③登録
①(最新版)取得
作業コピー リポジトリ
②変更
• 登録・・・コミット
- 79. 仕組み
③登録
①(最新版)取得
作業コピー リポジトリ
②変更
• 登録・・・コミット
• 取得・・・チェックアウト、アップデート
- 92. Subversionとは
• 元々 CollabNet, Inc. が開発したVCS
• CVSの置き換えを狙って作られた
• 2010年にApacheトッププロジェクト
• Apacheライセンス(オープンソース)
• Win/Mac/Linux など、幅広いプラットフォー
ムで動作
- 93. GUIクライアント
• Windows
• TortoiseSVN など
• Mac
• Versions, Cornerstone など
• Linux
• Esvn, RabbitVCS など
- 107. 今からバージョン管理
始めるなら
とりあえず file://... で始めるのが楽
→ あとからサーバ移行もできる
- 111. TortoiseSVNの良い
良い参考サイト紹介
TortoiseSVNの基本的な使い方 その1
http://d.hatena.ne.jp/sinsoku/20100405/1270397683
もうファイル管理で困らない! デザイナーのためのSubversion/TortoiseSVN入門
http://techblog.yahoo.co.jp/tips/subversion-for-designers-01/
デザイナーのためのSubversion/TortoiseSVN入門2
-Subversionでのフォルダーの命名・構成とTortoiseSVNの便利な使い方-
http://techblog.yahoo.co.jp/tips/subversion-for-designers-02/
- 112. TortoiseSVNの良い
良い参考サイト紹介
Google Code の Wiki にリンク集として掲載してます
TortoiseSVNの基本的な使い方 その1
http://d.hatena.ne.jp/sinsoku/20100405/1270397683
もうファイル管理で困らない! デザイナーのためのSubversion/TortoiseSVN入門
http://techblog.yahoo.co.jp/tips/subversion-for-designers-01/
デザイナーのためのSubversion/TortoiseSVN入門2
-Subversionでのフォルダーの命名・構成とTortoiseSVNの便利な使い方-
http://techblog.yahoo.co.jp/tips/subversion-for-designers-02/
- 116. 1. チェックアウト
脱線
したので再掲
• チェックアウトに必要なもの
• URL
• https://...
- 117. 1. チェックアウト
脱線
したので再掲
• チェックアウトに必要なもの
• URL
• https://...
• svn://...
- 118. 1. チェックアウト
脱線
したので再掲
• チェックアウトに必要なもの
• URL
• https://...
• svn://...
• file://...
- 119. 1. チェックアウト
脱線
したので再掲
• チェックアウトに必要なもの
• URL
• https://...
• svn://...
• file://...
• (ユーザ)
- 120. 1. チェックアウト
脱線
したので再掲
• チェックアウトに必要なもの
• URL
• https://...
• svn://...
• file://...
• (ユーザ)
• (パスワード)
- 127. 2. 変更
• Eclipse で、それぞれHTMLファイルを作成し
てください
• testN.html (Nは数字)というファイル名で作
成してください
- 134. (1) + アイコンでツリーを展開
(3) 赤い方の矢印を
クリックしてコミット
(2) 新たに test0.html をバージョン管理下
におくことを意味する
- 148. コミットメッセージの例
• BUG xxx を修正
• ストーリー yyy を実装
• チケット zzz を完了
• ○○を実装。
実はまだ△△機能がIEで動かない。
補足情報もいれると、
コミットログの情報量が増えて良い
- 166. 6. 差分を見る
• 追加した testN.html を右クリックし、
Team -> リソース・ヒストリーを表示
をクリックしてください
• 選択したリビジョン間の差分を見ることがで
きます
• 比較したいリビジョンをCtrl/Cmdを押しな
がら選択
• Compare with Each Other
- 175. リポジトリ
├── trunk
├── branches
│ ├── redmine-1
│ ├── redmine-2
│ └── redmine-3
└── tags
├── release-1.0.0
├── release-1.0.1
└── release-1.1.0
• チケット駆動開発
• どのブランチでどの機能開発・BUGFIXをし
ているか一目瞭然
• ソースが混在しない