Download - 20140808 社内勉強会資料
![Page 1: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/1.jpg)
ソフトウェア開発におけるバージョン管理システムのお話
by Shinya Kinoshita
![Page 2: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/2.jpg)
注意事項
本資料は社内勉強会用に作成したものです。
![Page 3: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/3.jpg)
バージョン管理システムとは
コンピュータ上で作成・編集されるファイルの変更履歴を管理するためのシステム
![Page 4: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/4.jpg)
どんな時に使うのか
• ソフトウェアをチームで開発する場合• メンバーの変更履歴が確認できる• メンバーの変更内容を取り込むことができる
• 製品としてリリースした時点のファイルの状態を管理する場合
![Page 5: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/5.jpg)
使わなかったらどうなるか
• 変更時にバックアップファイルを毎回作成しないといけない
• 変更前と変更後の箇所が分かるようにファイルの内容を編集しないといけない
• ファイルを紛失した際に復旧できない場合がある• 複数プロジェクトで同一ファイルを編集する場合の変更履歴の管理が複雑になる
![Page 6: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/6.jpg)
何を管理したらよいか
• ソースコード• ビルドスクリプト• ドキュメント• データベースにおける DDL定義、初期データ
• 環境構築用の設定ファイル・スクリプト
![Page 7: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/7.jpg)
何を管理しなくてよいか
• ソースコードをコンパイルしてできたバイナリファイル
• 公開鍵、秘密鍵、証明書等の厳重に管理しないといけないファイル
• ログファイル• アプリケーションにより出力された一時ファイル• 統合開発環境の設定ファイル
![Page 8: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/8.jpg)
リポジトリとは
• バージョン管理システムがファイルを管理するために作成するディレクトリ
• リポジトリの作成単位に決まりはない• ソフトウェア全体で1つのリポジトリを作成• ソフトウェアの機能単位でリポジトリを作成
![Page 9: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/9.jpg)
ブランチとは
• バージョン管理システムの管理下にあるファイルやディレクトリ等をコピーし、それぞれ同時並行で変更できるようにするための仕組み
• 1つのリポジトリに複数のブランチが存在することがある
![Page 10: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/10.jpg)
集中型とは• サーバー上にリポジトリを1つ配置する
• 開発者はサーバー上のリポジトリに対してファイルの変更内容を登録したり、他の開発者の変更内容を取得する
• 変更を管理することに重点をおいている
![Page 11: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/11.jpg)
分散型とは• 開発者や管理者ごとに1つのリポジトリを所有する
• 開発者は自分のリポジトリに対してファイルの変更内容を登録する
• 他の開発者の変更内容は他の開発者のリポジトリから取得する
• 変更を共有することに重点をおいている
![Page 12: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/12.jpg)
ホスティングサービス
• Google Code
• オープンソースとして公開するもののみ利用可能• GitHub
• 無料で利用できるが公開が前提となる• 非公開にしたい場合は有料プランを利用する
• BitBucket
• 公開・非公開どちらでも無料で利用可能• 6人以上のプロジェクト利用の場合は有料プランを利用する
![Page 13: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/13.jpg)
参考情報
• DevOps時代の開発者のための構成管理入門( 3)http://www.atmarkit.co.jp/ait/articles/1305/20/news015.html
![Page 14: 20140808 社内勉強会資料](https://reader033.vdocuments.pub/reader033/viewer/2022061213/54984685ac7959042e8b55a1/html5/thumbnails/14.jpg)
終わり