SVN repository quick sync script
#!/usr/bin/php | |
<?php | |
$status = shell_exec('svn status --non-interactive'); | |
if (strlen(trim($status)) > 0) | |
{ | |
$status = explode("\n", trim($status)); | |
echo("Syncing repository...\n"); | |
foreach ($status as $item) | |
{ | |
if (preg_match('/^\?\s+(.*)(?<!CVS\/Entries\.Log)$/', $item, $match)) | |
echo(shell_exec('svn add ' . svn_esc($match[1]))); | |
elseif (preg_match('/^\!\s+(.*)(?<!CVS\/Entries\.Log)$/', $item, $match)) | |
echo(shell_exec('svn rm ' . svn_esc($match[1]))); | |
elseif (preg_match('/^\!M\s+(.*)(?<!CVS\/Entries\.Log)$/', $item, $match)) | |
echo(shell_exec('svn rm --force ' . svn_esc($match[1]))); | |
elseif (preg_match('/^\?\s+(.*CVS\/Entries\.Log)$/', $item, $match)) | |
echo(shell_exec('rm ' . escapeshellarg($match[1]))); | |
} | |
} | |
else | |
echo("Nothing to sync.\n"); | |
function svn_esc ($name) | |
{ | |
if (strpos($name, '@') !== false) | |
$name .= '@'; | |
return escapeshellarg($name); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment