|
|
|
@ -16,6 +16,21 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface
|
|
|
|
|
protected $branches;
|
|
|
|
|
protected $infoCache = array();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var boolean $useAuth Contains credentials, or not?
|
|
|
|
|
*/
|
|
|
|
|
protected $useAuth = false;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var string $svnUsername
|
|
|
|
|
*/
|
|
|
|
|
protected $svnUsername = '';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @var string $svnPassword
|
|
|
|
|
*/
|
|
|
|
|
protected $svnPassword = '';
|
|
|
|
|
|
|
|
|
|
public function __construct($url, IOInterface $io, ProcessExecutor $process = null)
|
|
|
|
|
{
|
|
|
|
|
parent::__construct($this->baseUrl = rtrim($url, '/'), $io, $process);
|
|
|
|
@ -23,6 +38,8 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface
|
|
|
|
|
if (false !== ($pos = strrpos($url, '/trunk'))) {
|
|
|
|
|
$this->baseUrl = substr($url, 0, $pos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->detectedSvnAuth();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -186,4 +203,25 @@ class SvnDriver extends VcsDriver implements VcsDriverInterface
|
|
|
|
|
$exit = $processExecutor->execute(sprintf('svn info --non-interactive %s 2>/dev/null', escapeshellarg($url)), $ignored);
|
|
|
|
|
return $exit === 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is quick and dirty - thoughts?
|
|
|
|
|
*
|
|
|
|
|
* @return void
|
|
|
|
|
* @uses parent::$baseUrl
|
|
|
|
|
* @uses self::$useAuth, self::$svnUsername, self::$svnPassword
|
|
|
|
|
* @see self::__construct()
|
|
|
|
|
*/
|
|
|
|
|
protected function detectSvnAuth()
|
|
|
|
|
{
|
|
|
|
|
$uri = parse_url($this->baseUrl);
|
|
|
|
|
if (!isset($uri['user']) || empty($uri['user'])) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->svnUsername = $uri['user'];
|
|
|
|
|
$this->svnUsername = $uri['pass'];
|
|
|
|
|
|
|
|
|
|
$this->useAuth = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|