I have been using Subversion (SVN) pretty heavily the past couple of weeks. I wanted a quick way to create a repository that included the standard trunk, branches and tags directories and set the correct owner and file permissions for the new repo. I came up with the following script. Please feel free to comment out sections you do not need.
#!/usr/bin/php -q < ?php define('REPO_PARENT_PATH', '/path/to/repos'); define('REPO_OWNER', 'devel_user:devel_group'); define('REPO_MOD', '770'); if( $argc < 2 ) die("No repo name specified.\n\nUsage: addrepo.php repo_name\n\n"); $repo_name = $argv[1]; echo "Adding Repository: $repo_name\n\n"; // Create repositoryi $repo_path = REPO_PARENT_PATH; if( substr( $repo_path, strlen($repo_path)-1, 1) != '/' ) $repo_path .= '/'; exec("svnadmin create $repo_path$repo_name"); // Add trunk exec("svn mkdir file://$repo_path$repo_name/trunk -m "Add trunk""); // Add branches exec("svn mkdir file://$repo_path$repo_name/branches -m "Add branches""); // Add tags exec("svn mkdir file://$repo_path$repo_name/tags -m "Add tags""); // Change file permissions exec("chmod -R ".REPO_MOD." $repo_path$repo_name"); // Change file ownership exec("chown -R ".REPO_OWNER." $repo_path$repo_name"); ?>
To use, execute the script from the shell one parameter being the name of your repository.
Example: ./addrepo.php repo_name