Successfully reported this slideshow.
Your SlideShare is downloading. ×

バージョン管理の断捨離

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 23 Ad
Advertisement

More Related Content

Slideshows for you (20)

Advertisement

Similar to バージョン管理の断捨離 (20)

More from Kazushi Kamegawa (20)

Advertisement

Recently uploaded (20)

バージョン管理の断捨離

  1. 1. バージョン管理の断捨 離 ブランチ&マージガイドを5分で読む かめがわ かずし(KKAMEGAWA)
  2. 2. 自己紹介 • かめがわ かずし/会社員 http://d.hatena.ne.jp/kkamegawa/ twitter:kkamegawa • Microsoft MVP for Visual Studio ALM(2012/7~) • @ITさんで書かせていただいています • いまさら聞けないWindows Serverの開発活用術 • Visual Studioデバッグ手法 • パフォーマンスチューニング
  3. 3. ソースのバージョン管理 どうしていますか?
  4. 4. パッと思いつくやり方
  5. 5. CHECKIN/CHECKOUT繰り返し 1/13のリリース、どう やったら出せるんだっ け? Source1.sln他 2013/1/10 機能1 Source1.sln他 2013/1/17
  6. 6. 日付でフォルダを作る 間違えずにコ ピーしない と! sourceproduct120130101-20130110 sourceproduct120130111-20130120
  7. 7. バージョン/機能ごと Ver1 Ver2の機能をVer1 機能1 にも入れたいなぁ … 機能2 Ver2 機能1 機能2
  8. 8. 問題点 • 逐次check in/outの繰り返し • どのチェックインソースがリリースしたものわかりづらい • フォルダ追加による手動システム • 差分が比較できない • 古いバージョンに修正を反映できない
  9. 9. ブランチとマージで解決しよう!
  10. 10. ブランチとマージについて • 聞いたことがある • 実践している • 必要ないと思っている
  11. 11. ブランチ(分岐)とは “バージョン管理システムおよびソフトウェア構成管理におけ るブランチ(branch)とは、バージョン管理システムの管理下に あるオブジェクト(ソースコードファイル、ディレクトリ ツリーなど)を複製し、それぞれ同時並行して変更が行える ようにしたものである。” http://ja.wikipedia.org/wiki/ブランチ(ソフトウェア) より引用
  12. 12. マージ “バージョン管理システムにおけるマージとは、バージョン管 理されているファイル群に対して行われた変更を統合する操 作のことである。マージが必要とされる典型的なケースとし ては、ひとつのファイルが、異なるコンピュータ上で、異な る利用者によって同時に変更された場合がある。2つのブラン チをマージすると、双方のチェンジセットを取り込んだファ イル群ができあがる。” http://ja.wikipedia.org/wiki/マージ(バージョン管理システム) より引用
  13. 13. そもそも何故ブランチが必要? • 新機能を最初のバージョンから影響ない状態で作りたい • 最初にリリースしたバージョンのバグ修正のみ開発したい • インターフェースを壊すような規模の大きい変更したい
  14. 14. タイプ別ブランチ選択ガイド
  15. 15. 特定の顧客のみにリリースする • 納品後を基準にして新しい機能開発もしくはバグ修正のタイミングで ブランチを作る • 新規環境を作るごとにパッチ当てるのは面倒なので、最終的にすべて の修正を含んだリリース媒体を作るためにマージする
  16. 16. 特定顧客のみに作る時便利な基本系 内部開発用 双方向マー ジ メイン リリース用 からのみ マージ リリース用
  17. 17. 複数のバージョンを並行開発したい • 少数の不特定顧客向けに複数のバージョンを開発、保守するとき便利 • リリースを特定のタイミングで固定させて、いつでも任意のタイミン グのリリース用モジュールが用意できる(xxバージョンでの挙動を容易 に確認できる) • パッチも開発並行して開発、取り入れる
  18. 18. 複数のバージョンを並行する時便利な標準 系 内部開発用 双方向マー ジ メイン リリース用 からのみ 大きなパッチ マージ リリース用
  19. 19. 複数のメジャーバージョンを同時に保守 • 不特定多数に複数のメジャーバージョンを保守するような開発向け • 既存保守と新規開発で複数のチームに分かれている • それぞれでパッチを作って、相互に取り込む必要がある (法律対応など)
  20. 20. 複数のメジャーバージョンを保守する時便 利な高度 メイン 大きなパッチ リリース用 小さなパッチ からのみ マージ リリース用
  21. 21. TFSでのブランチとフォルダ • ブランチが最上位になって、ア イコンが変わる。 ブランチ配下のフォルダは分岐 にできないため、ブランチを ブランチ フォルダに変換してから分岐に (分岐) する http://msdn.microsoft.com/ja- jp/library/ms181425.aspx フォルダ
  22. 22. まとめ • まずはブランチを作ってみよう。作るだけなら影響なし • どの分岐で作業しているか忘れないようにしよう • ツールで楽をしよう!(修正反映漏れとさようなら!)
  23. 23. 参考資料 • ブランチとマージガイドライン(日本語) Visual Studio 2010時代のものだけど参考になります http://vsarbranchingguide.codeplex.com/ • 分岐を利用したリスクの分離 http://msdn.microsoft.com/ja-jp/library/ms181423.aspx • ブランチは計画的に http://msdn.microsoft.com/ja-jp/library/ee782536.aspx

×