今回は,
題材としてフリーソフト/
なお本稿では,
No Patch, No Life
世間的にFLOSSが認知されて随分時間も経ちましたし,
その気になれば,
しかし,
- コミット権限が無いので,
自分の作業を記録できない - その場限りの変更なら問題ありませんが,
継続的に変更作業を実施する=ある程度の規模の変更を行う場合, 「変更」 そのものの構成管理ができないのは致命的です。 - 新しい版が出た際に,
独自の変更分の反映が面倒 FLOSSの場合,
比較的短期間でバグが修正された新しい版がリリースされることが多々あります。 折角新しい版で品質が向上していても,
独自変更部分は構成管理されていませんので, 新しい版に対して適用するのは非常に面倒です。
結局のところ,
「独自の変更」
今時のFLOSSは,
特に改変しなくても十分使えるでしょ?
と考える方もいることでしょう。
しかし,
- プログラミングの学習の際の,
コメント付与や改変実施 - 問題解析のための,
ログ出力追加
といったことをやらない手はありません。
リポジトリのハイブリッド化
まずはCVSなりSubversionを使用して,
これでこのディレクトリは,
しかし,
まずはCVSやSubversionの管理情報格納ファイルを無視するために,
syntax: re
# CVS との併用の場合
^CVS/
/CVS/
# Subversion との併用の場合
^\.svn/
/\.svn/
".hgignore"ファイルは,
上記以外にも,
syntax: glob
# Emacs のバックアップファイル
*~
# C/C++ のオブジェクトファイル
*.o
# Java のクラスファイル
*.class
"syntax: re"や"syntax: glob"は,
後は"hg add"によってファイルを登録するのですが,
"hg commit"に"-A"オプションを指定することで,
- 未知のファイルの追加:
- "hg status"で"?"表示されるファイルに対して,
"hg add"が指定されたものとして振舞います。 - 見失ったファイルの除外:
- "hg status"で"!"表示されるファイルに対して,
"hg remove"が指定されたものとして振舞います。