Skip to content

Instantly share code, notes, and snippets.

@mlask mlask/svn-sync
Last active May 23, 2017

Embed
What would you like to do?
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
You can’t perform that action at this time.