壮絶に日付がずれていたので

昨日あたりに玄箱で鯖設置して運用しだしたんですけど、ふと見るとかなり昔を指してるのに気が付きました。svn単体だったらまだいいんですけど時計を直したらtracのtimelineが見えなくなっちゃったんでレスキュー。

while (<>)  {
    if ( /^2007/ )  {
        s/2007-07-(\d+)T/sprintf '2007-09-%02dT', $1 - 5/e;
    }
    print $_;
}

約二ヶ月ずれてたのね。適当に置き換えるスクリプト@dt.pl。名前はDateTimeを使おうと思った名残 :-)

sudo svnadmin dump /var/svn/socks 2>/dev/null | perl dt.pl > dumped.txt  

とりあえずdumped.txtにはいてみる。


あとは

svnadmin create repos
svnadmin load repos < dumped.txt

sudo mv repos /var/svn
cd /var/svn
sudo chown www-data:www-data repos -R

dump&loadしたら権限も忘れずに。

で、完了。ちゃんと元に戻った。あとはtrac

sudo trac-admin /var/trac/repos resync

resyncすればtracのデータとも調合が取れる。よしよし。

svnadmin dumpで吐いてフィルタしてsvnadmin loadで読めば日付は直せそうですね。コミットメッセージとかはLengthとはあるみたいなんでめんどくさそうですけど。まぁどっちにしろIllegalだな、これ。時計はちゃんと合わせましょうね、と。