Next-L Enju 開発ワークショップ 第 2 回 2012 年 3 月 10 日 田辺浩介
バージョン管理システム
コンピュータファイルの変更者や変更履歴、コミット時のログなどのメタデータを管理するための仕組み
プログラムのソースコード管理で広く使用される
バージョン管理システムで管理されるファイルは「リポジトリ」に保存される
リポジトリ
バージョン管理システムで管理されているファイルを保存する場所
リポジトリは複数人で共有できる複数人で同じファイルを同時に編集することも、その際に発生した複数箇所の変更をひとつにまとめることもできる
リポジトリ
ある時点でリポジトリに登録されているファイル全体の状態をもとに、作業用の新しい保存場所を分岐して作ることができる保存場所を「ブランチ」と呼ぶ
新しい機能追加など、大規模な変更は別のブランチを作ってそこで行い、完成したら元のブランチに統合(「マージ」と呼ぶ)する
バージョン管理システムがないと
誰がいつソースコードを変更したのかがわからない最新のソースコードがどれかわからない
不具合が出ても、どの変更でその不具合が起きたのかがつかみにくい
結果として不具合が多発する
ファイルサーバとの違い
ファイルの変更履歴やコミットログなどのメタデータの管理特定のコミットが行われた時点のファイルだけを取り出すことができる
リポジトリ全体を特定のコミット時の状態に戻すこともできる
つまり、間違っても問題が発生しても、簡単に元に戻せる
バージョン管理システムの種類
CVS, Subversion, Gitなどなど
現在人気があるのは Git
リポジトリを自分のコンピュータに作れる(サーバ不要、オフラインでもコミット可能)
githubの成功
github
Gitを使ったリポジトリサービス
公開リポジトリは無料で使用可能
開発者の SNS的な要素も含む誰が、どの開発プロジェクトで、どんなコードを書いているか
どの開発プロジェクトが注目されているか
githubの特徴
クリック 1回で他人のソースコードを自分のリポジトリにコピーできる
自分のリポジトリにコピーしたソースコードに加えた変更を、コピー元の人に取り込んでもらうように連絡することができる
githubの特徴
とにかくいろいろなものが登録されているRuby on Railsや jQueryのような超有名ソフトウェアのソースコードも
Webサイトの HTMLも
自分専用のエディタの設定ファイルも
とにかくいろいろな企業、いろいろな開発者が登録している
Twitter, Facebook, ほかにもたくさん
用語(とりあえず覚えよう)
コミットバージョン管理システムを使って、リポジトリにファイルを保存すること
「チェックイン」とも呼ぶ
コミット時には通常、内容を簡潔に説明するための「コミットログ」を書く
チェックアウトリポジトリからファイルを取り出すこと
用語(とりあえず覚えよう)
ブランチリポジトリ内の作業領域。複数のブランチを作成することも、後でまとめることもできる
マージ複数人で同じファイルを変更していた場合、そのファイルの変更点をひとつにまとめること
たとえば、あるブランチでの作業を別のブランチに取り込む場合にこの言葉を使用する