Subversionでマイ文書を管理するメリットとコツ

こちらのエントリ。

http://blogs.itmedia.co.jp/koji/2007/06/subversion_e57b.html

すばらしい。そのとおり、他人とファイルを共有しなくても、バージョン管理することにはメリットがある。SubversionCVSよりもあらゆる意味で簡単に使えるから、エンジニアじゃなくても積極的に使ってほしい。

しかし、Subversion 1.0.0からの使い手として、ちょっとツッコミ。

コツ1. リポジトリは1つにしない

なぜかというと、失敗して作り直したりしたくなるから(笑)。それ以外にも、フルバックアップが撮りやすいですし、リビジョン番号が上がってくるとログを見るのが遅くなります(多分…)。

リポジトリを用途別に分けるのはアリだと思うが、「失敗して作り直したくなる」ことは分割する理由にならない。失敗してもリポジトリを作り直してはいけない。というのも、失敗すらも記録しておくのがバージョン管理だからだ。失敗したという判断自体が失敗だった、ということもままある。このときリポジトリごと作り直していると、もはや元に戻せない。

また、リビジョンが上がってもログを見るのは遅くならない。それが問題になるなら、リビジョン10000を超えることもザラな、世間のOSSプロジェクトのSubversionリポジトリは使い物にならないことになる。しかし、現役バリバリで稼働中だ。俺も実際、仕事でリビジョン5000を超えたリポジトリを使っていたが、ログ表示が遅いと感じたことはない。試しに手元のリポジトリ(rev.2とrev.155)とでログ表示させたが、有意な時間差は出なかった。憶測でモノを言ってはいけない

それとも、一度に大量のログがでるから眼で追いづらいってことだろうか?それならクライアントの設定の問題にすぎない。

どちらにしろ、リポジトリを分けて、管理を煩雑にする理由にはならない。

またSVNコマンドを使えばリポジトリの統合・分割も可能なようです(TortoiseSVNで可能かどうかは未確認)。

確かに可能だが、簡単ではないしリビジョン番号が変わってしまうのであまりお勧めしない。

リポジトリはホイホイと気楽に作り直すものじゃない。それは禁じ手であり最終手段だと考えてほしい。Subversionの使用において必要なのは、リポジトリを作り直して失敗を帳消しにする準備ではなく、失敗履歴を残すことを恥じず恐れない心の在り様である*1

・・・まぁ、リビジョン1, 2あたりなら作り直しても大して問題にならないけどね。

コツ2. バージョン管理しないファイルもSubversionに入れてしまう

うまい使い方。ナイス割り切り。しかし、バージョン管理するかしないかを区別する必要がどこにあるのだろう?リポジトリに入れた時点でいやでもバージョン管理されるのだし、いちいちディレクトリを分けて管理することは無いと思うのだけれど・・・。


・・・以上。全体としてはすばらしい記事だと思う。もっとたくさん書いて啓蒙していただきたい。でも、憶測はダメ。

*1:お、ちょっとカッコよくも大げさな書きっぷりに