ブラウザで、/path/to/script.php/repositoryName.dmp のように、このスクリプトのURLの後に「/レポジトリ名.dmp」と入れてやると、ダンプファイルをダウンロードする。
ちょっと思いのほか便利。
<?php
define("REPOS_HOME", "/home/svn/repos");
define("SVN_ADMIN", "/usr/local/bin/svnadmin");
dumpRepository(getRepositoryName($_SERVER["PATH_INFO"]));
function getRepositoryName($pathInfo) {
$fileName = substr($pathInfo, 1);
list($repository) = split("\.", $fileName, 2);
$repository = escapeshellcmd($repository);
return $repository;
}
function dumpRepository($repository) {
header("Content-type: application/svndump");
header("Content-Disposition: attachement; filename=${repository}.dmp");
passthru(SVN_ADMIN . " dump " . REPOS_HOME . "/${repository}");
}
?>
どうせやったらRubyで書いた方がかっこよかったかな?勉強にもなったはずやし...