夜行録 - 酔歩.net

Calendar

< August 2011 >
MonTueWedThuFriSatSun
1234567
891011121314
15161718192021
22232425262728
293031

Monday, 01.08.11

subversion repository の操作

ふと、 subversion リポジトリを mercirual にコンバートして見ようとして、思ったより上手くいかなかったので正規化を試みる。

対象になっているのは、昔集積した個人リポジトリで、大体は正しかったのだが、一部 /branches/ だの /releases/ の直下にブランチ名、リリース名なしでプロジェクトディレクトリがあったり、古いものを /finished/ とか作って放り込んであったので、この階層をなんとかする。

段取りとしては、svnadmin dump して sed で調整。Node-path: だけだと Node-copyfrom-path: で問題がおこるので sed -e '@-path: XXX@-path: YYY@' とか。 さらにXXX を YYY/ZZZ とかにしようとすると、ディレクトリがないとやはり破綻するので、それは諦めて dump ファイルを vi で編集して微調整。

ディレクトリの追加は、あるリビジョンに、てきとーに

Node-path: brances/XXX
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END

の部分を複製して追加(このブロックは複数あっても構わないので)。

結局、うかつに mv して tags/ にだけ存在させると怪しいことになる(タグがあって実体がない)。branches/ に捨てるのが得策。

[read more]