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/ に捨てるのが得策。

その他の、 hg の小技:Git使いがMercurial使いに転職するとき設定しておくべきMercurial拡張 - TIM Labs


00:41:57 - 01.08.11 - kuroyagi - その他雑記 - 3379x