バージョン管理ってのは大切です。たとえばプログラムを大幅改造する時にバックアップを取っておかないと、うはwwwwプログラム大幅に変えたら、動かなくなったオワタ\(^o^)/なーんてことになります
バージョン管理システムとはそういった時に対応するために行ったり、複数人での開発で使われます。
設定ファイルや文章管理なーんてことにも使われたりetc...
ここでは、バージョン管理の必要性とその実践、各種バージョン管理システムの使い方を説明するらしい。
バージョン管理の方法として以下のようなものが上げられる。
バージョン管理システム(version control system)ってのは本当に便利やねー ってことでいくつか有名なバージョン管理システムについて解説します。
以下に一覧を置いておきます。普及度、速度などは主観によるものなので 戦争にならないように。
名前 | 速度 | ディレクトリの移動 | 普及度 | 分散型 | 個人利用 | 主な使用例 |
RCS | × | ○ | ||||
CVS | × | × | ◎ | × | × | Eclipse |
Subversion | ○ | △ | ◎ | × | △ | Google Code |
git | ◎ | ○ | ○ | ○ | ○ | Linuxカーネル, wine |
Mercurial | ◎ | ○ | ○ | ○ | ○ | Mozilla, OOo |
Bazaar | △ | ○ | △ | ○ | ○ | Ubuntu, MySQL, Emacs |
LibreSource | ○ | × | ||||
monotone | ○ | × | ○ | Xaraya |
黎明期のバージョン管理システムのひとつ。基本的に一度にひとつの テキストファイルを扱う。内部でdiffを利用している。 Wikiエンジンには名前(Revision Control System)どおり、これを リビジョン管理のバックエンドに用いているものも多い。
RCSをベースに築かれた。サーバー・クライアントなやり方でネットワークを 意識して、さらに複数のファイルをプロジェクトとして扱えるよう作られた。
CVSの使い勝手を意識して作られた。ネットワーク越しの利用やファイル管理に関して強化されている。
WindowsならVisualSVN Serverを使えば簡単にローカルにSVN鯖を建てられる。
VisualStudioのStandard以上ならAnkhSVNというアドインでソリューションエクスプローラ上からコミットしたりできておすすめ。
また、WindowsではTortoiseSVNも便利。ローカル環境もこれ1つで構築できる。エクスプローラーのシェル拡張をモロに使うので好みがわかれるかもしれない。
編集頻度が非常に高いLinuxカーネルの作成において、サーバー負荷が小さくなるよに作ったシステム。ローカルのみでの利用が可能で、サーバーが無くても利用できるため、個人利用にもつかえる。
CVSやSVNのように中央のサーバーを必要としない、いわゆる分散型のバージョン管理システム。
ほとんどPythonで書かれている(速度を必要とする部分はCが使用されている)が非常に高速に動作する。
ソフトウェアを公開するときにバージョン番号を付けることがあるかと思います。例えばWindows XPだったら「5.1.2600」です。
番号の付け方に共通の決まりはないので、ここでは大体の概要について記します。
(加筆修正おねがいします)
Windows XPのバージョン番号は「5.1.2600」です。これを例に説明します。
セマンティックバージョニングという考え方があります。
これまで何となくバージョン番号を付けてた方は参考にしてもいいかもしれません。
http://semver.org/
(日本語訳 http://samidarehetima.blog9.fc2.com/blog-entry-182.html)