icon 情報整理

バージョン管理

■バージョン管理
プログラムはどんどん変更が加わっていきます。
ただ、最新のプログラムだけあればいいという訳ではありません。
過去にリリースしたものがあればその時点でのプログラムも
保存しておかなければなりません。
プログラムにバグがある場合や追加を破棄する場合など
ある時点のリリースに戻す必要があるからです。
バックアップを取るということです。

■差分管理
そして、そのリリースしたものとの差分を把握しておく必要があります。
どの時点に戻すかを判断します。

■一人で行う場合
一人で行う場合はバックアップを取って、
差分を記録したり、
差分検出ソフトを使って差分を抽出すれば
バージョン管理は事足ります。

■共同作業
複数名で行う場合はどこかにファイルを共有する必要があります。
また一人の時とは違い、
複数名が同じファイルを共有することになります。
例えば、同じファイルを複数名が同時に変更するという状況もあるわけです。
その場合、自分の方を上書きしてしまうと、
他の人が変更した内容が消えてしまうことになります。
そのため、共有ファイルを変更するときは
ファイルをロックし続けて変更するか、
もしくはファイルを一時的にロックして、
その間に差分のみを反映する必要があります。
(ファイルを一時ロックした時点で既に誰かが変更を加えている可能性があるため
 全てを反映するのではなく差分のみを反映する必要があります)

■バージョン管理システム
そのような手間を減らすためにバージョン管理システムがあります。
バージョン管理システムは同じファイルを変更したことを通知してくれます。

  ■マージ
  同じファイルを変更した場合は差分のみを反映する必要があり
  マージという作業を行います。

  ■その他の機能
    ■共有ファイルの取得
    ■共有ファイルへの反映
    ■共有ファイルの変更履歴を見る
    ■その時の状態をリリースタグで括る
    ■ある時点での共有ファイルを分岐させる(リリース版と開発用など)
  
■バージョン管理システムの種類
  ■集中型
    共有ファイルは一つ
    ・CVS
    ・VSS(Visual SourceSafe)
    ・Subversion
    など
  ■分散型
    ローカル共有ファイル(複数)とリモート共有ファイル(一つ)
    がありローカル共有ファイルで自己バージョン管理が可能
    (使ったことがないためイメージ)
    ・Git
    など