svnリポジトリの整理

職場のHDDがエラー出すようになったので交換。整理するついでにsvnリポジトリを整理することにした。

最初に構成決めるとき、参考にできるものが無くてフォルダ構成そのままで作ってしまったのでこんな状態でした。

 svn
  +--BCB6
  |   +---_プロジェクト1
  |   +---プロジェクト2
  +--BDS2007
  |   +---プロジェクト3
  +--CCB2007
  |   +---プロジェクト1
  |   +---プロジェクト4
  +--document
  +--VC7

コンパイラ毎に大別して、その中にプロジェクトを作る形。さらにBCB6からCCB2007に切替えた場合はブランチをCCB2007に作成し、元のBCB6のフォルダには「_」を付けて移行済みであることを示すわけです。

ヒドイものです。全て一つのリポジトリなのは、コンパイラ移行時にブランチで分けれないからでした。(最初はコンパイラ毎にリポジトリを分けていたがそのことに気付いて統合した)

Tracを使ってみたくなったので解説書を見ていると「プロジェクト毎にリポジトリを分けなければ使えない」ということだったので、この機会に整理して分割しようかと。

どういう構成にしようか調べてみると、こういう形が基本であるとsvnのマニュアルに書いてあるじゃないですか。何で最初これ見なかったんだろう…。

 project
  +--trunk
  +--tags
  |   +--tag1
  |   +--tag2
  +--branches
      +--branche1
      +--branche2

単一コンパイラのプロジェクトはtrunkに投げ込めば完了だが、複数コンパイラをまたいだプロジェクトは上手く行かず。最初のプロジェクトの方に新しいコンパイラ用ブランチをマージしてしまえば良いけど、そうするとコミットログが無くなってしまう。ブランチのほう見れば良いけど、これでは使い辛い。

ということでこんな妥協形式に。

 project
  +--trunk
      +--BCB6
      +--CCB2007

dumpを上手く操ればコミットログ残してマージしたり出来るんだろうけど、そこまでやれなかった。

さらに、プロジェクト毎に分かれたところでリポジトリ分割しようとdump > loadするが、フォルダをあちこち移動してしまったためか上手く分けれない。結局単一リポジトリのままで運用することになってしまった。

Tracはまだ使えそうにありません…。