重要ファイルはSubversionで管理する

頻繁に情報を更新するファイル(例えばソースコード)なら当然のごとくSubversion等の構成管理下に入れているけど、日常の業務で使用するファイルでも同様の利用は有効で、しかも更新頻度が低いファイルこそ実は効果が有るのではないかと思っている。頻繁に更新するファイルだと、ファイルの置き場所は分かっているし、最新版のファイルは明らかだし、前回どのような変更を加えたのか覚えていることも多い。

ところが、更新頻度が低いファイルは、何処にファイルを入れたのか忘れてしまうし、やたらと「...のコピー」とか「_20120220」いう似たような名前のファイルが出てきて最新版がどれなのか分からなくなってしまうし、以前に何の目的でどのような変更を加えたのか全く覚えていなかったりする。そんな時にこそ、構成管理の出番なのだろう。

例えば、こんな類いのファイルをSubversionで管理している。

  • Apache等の設定ファイル
    滅多に変更しないけど、手を加えた時にいきなり動かなくなると痛い。
  • 定期的に見直す工程管理表
    本当ならガントチャートのソフト自体に履歴管理が含まれていて欲しいところだけど。
  • 遠隔地とやり取りするアクションアイテムのリスト
    ホントはExcelよりBTSを使って欲しいのだが、いろいろ事情がある。
  • 仕様書類
    特に開発が終わってメンテナンスに入ったものは更新頻度が下がるので、積極的な管理が必要。
  • 個人用の金銭出納帳
    大人の事情により利用目的は割愛。

こんなノウハウも、MacではTimemachineを使ってOSとしてファイルの履歴管理を自動的に行なってくれるので廃れつつ有るのだが、惜しいことにファイル保存時のコメントだけは管理できない。ファイルに付随するメタ情報の管理だけはなかなか進化せずに残念だと思う。この機能だけはSubversionの方にメリットが有るので、コミットログに更新情報を記載するようにしている。

なお、最終的なマスターはSubversionで一元管理したいけど、そこに至るまでの試行錯誤の履歴を一時的に残しておきたいこともある。そんな時はその場で簡単にリポジトリを作ってファイルを登録できるMercurialを愛用している。これならMercurialで細かな変更の経緯を管理しつつ、最終的に確定した時点でSubversionへコミットし、Mercurialリポジトリを削除しておけば良いわけだ。長期的な管理と短期的な管理を上手く使い分けると便利なのだが、個人的には分散管理のリポジトリ自体が行方不明になってしまうという悲しい事態も経験しているので(泣)、長期的なデータ保存にはSubversionのような集中管理型の構成管理を愛用している。



関連