バージョン管理システム
出典: Wiki@browncat.org
Open Sourceなバージョン管理システムについて。
ソフトウェアのバージョン管理は重要です。
ソフトウエアのバージョンはソースコードやその関連ファイルとの関連性が高く、 特に多人数で開発を行う場合の共同作業や、リリースやデバッグ中の複数バージョン管理などは必須事項です。 しかしこれらのバージョンのトレーサビリティを紙やコピーなど人手だけで管理するのは大変であり且つ不十分です。 特に複数のブランチが出来た場合など、管理は大きな問題になってきます。
これらを自動化するためのソフトウェアがバージョン管理システムと呼ばれるソフトウェアです。 慣れると、バージョン管理システムなしでは開発が非常に不便だと感じるようになるはずです。
組み込み開発においても、未導入の場合是非導入を検討してみてください。
以下、代表的な2つをご紹介します。
詳細な使用方法などについては他のサイトの解説やドキュメントをご覧ください。
目次 |
[編集] CVS
古くから存在するバージョン管理システム。 多大な実績があり、大規模なOpen Source開発でもsourceforgeなどの採用例が多くあります。実務でもよく使われています。 バージョン管理は基本的にファイル単位で、 非ロックのコピーを変更し、コミット時にマージで解決します。 複数ファイルのバージョンのとりまとめはtag=固有のバージョン, branch=別バージョンの系譜としてで行います。
Linuxにはほぼ標準的に含まれます。Web I/Fもあり、Windows版も存在します。 WindowsではEclipse付属機能、Tortoise CVSがお勧めです。
ネットワーク関連、文字コード関連など後付部分が今ひとつといえます。
Windows用クライアント
- WinCVS本家 -- http://www.wincvs.org/
- WinCVS日本語解説ページ -- http://www.interq.or.jp/japan/s-imai/tcltk/wincvs.html
- TortoiseCVS -- http://tortoisecvs.bluegate.org/
Linux用クライアント
- cvs -- http://www.nongnu.org/cvs/
- Cervisia(KDE) -- http://cervisia.kde.org/
- gcvs(gtk+) -- http://www.wincvs.org/
[編集] SubVersion
ここ最近発展してきているバージョン管理システム。 多くのOpen Source開発が移行しつつあります。
バージョンはリポジトリ全体で管理され、リリースやブランチが管理しやすく、 競合解決はCVSと同じ方針です。 当然ながらCVSより新しい分高機能でです。
mod_davなどと連携したりネットワーク対応も積極的なようです。 wiki/bugtracker/Web I/Fが一つになったtracと連携させるのがお勧めです。
古いファイルを管理に組み入れたい場合、ファイルのタイムスタンプの扱いがコミット時になってしまう問題があります。また、BarkleyDBをバックエンドに使用する場合、壊れやすい可能性がありました。最近はfsfsが主流になり問題はないようです。
Windows用クライアント
- TortoiseSVN本家 -- http://tortoisesvn.tigris.org/
Linux用
- SubVersion本家 -- http://subversion.tigris.org/
[編集] その他
古くはRCS, SCCS, PVCS, 商用ではVSSなど。
