/** * @static * @return CvsClient|SvnClient */ public static function getInstance() { $appConf = AccountManager::getInstance()->appConf; if (!isset(self::$instance)) { switch ($appConf['GLOBAL_CONFIGURATION']['vcs.type']) { case 'cvs': require_once dirname(__FILE__) . '/CvsClient.php'; self::$instance = CvsClient::getInstance(); break; case 'svn': require_once dirname(__FILE__) . '/SvnClient.php'; self::$instance = SvnClient::getInstance(); break; } } return self::$instance; }
<?php /** * ----- request * POST /api/get_diff.php * { * url, login, password, * revision(number|"HEAD") * } * ----- response * {"result":"ok", "diff":[...]} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } $revision1 = isset($_POST['revision']) && is_numeric($_POST['revision']) && $_POST['revision'] > 0 ? intval($_POST['revision']) : $svn->getLastRevisionNumber(); $revision2 = $revision1 - 1; $diff = $svn->diff($url, $revision2, $revision1); if ($diff === false) { die(json_encode(array('result' => 'error', 'error' => $svn->getLastError()))); } die(json_encode(array('result' => 'ok', 'diff' => implode("\n", $diff))));
<?php /** * ----- request * POST /api/get_diff.php * { * url, login, password, * revision(number|"HEAD") * } * ----- response * {"result":"ok", "diff":[...]} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } die(json_encode(array('result' => 'ok', 'baseUrl' => $svn->getSvnBaseUrl(), 'lastRevisionNumber' => $svn->getLastRevisionNumber())));
<?php /** * ----- request * POST /api/list_files.php * { * url, login, password, * revision(number|"HEAD") * } * ----- response * {"result":"ok", "content": ""} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } $revision = isset($_POST['revision']) && is_numeric($_POST['revision']) && $_POST['revision'] > 0 ? intval($_POST['revision']) : false; $fileContent = $svn->getFileContent($url, $revision); die(json_encode(array('result' => 'ok', 'content' => $fileContent)));
<?php /** * ----- request * POST /api/check_connection.php * { * url, login, password, * to_revision(number|"HEAD"), * limit(number) (default: 30) * } * ----- response * {"result":"ok", "commits":[...]} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } $toRevision = isset($_POST['to_revision']) && is_numeric($_POST['to_revision']) && $_POST['to_revision'] > 0 ? intval($_POST['to_revision']) : 'HEAD'; $limit = isset($_POST['limit']) && is_numeric($_POST['limit']) && $_POST['limit'] > 0 ? intval($_POST['limit']) : 30; $commitsList = $svn->log($url, $toRevision, $limit); die(json_encode(array('result' => 'ok', 'commits' => $commitsList)));
<?php /** * ----- request * POST /api/get_blame.php * { * url, login, password, * revision(number|"HEAD") * } * ----- response * {"result":"ok", "blame": ""} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } $revision = isset($_POST['revision']) && is_numeric($_POST['revision']) && $_POST['revision'] > 0 ? intval($_POST['revision']) : false; $fileBlame = $svn->getFileBlame($url, $revision); die(json_encode(array('result' => 'ok', 'fileBlame' => $fileBlame)));
<?php /** * ----- request * POST /api/list_files.php * { * url, login, password, * revision(number|"HEAD") * } * ----- response * {"result":"ok", "files":[...]} * {"result":"error","error":"error info"} */ // init the request require_once __DIR__ . '/inc/config.php'; $svn = new SvnClient($url, $login, $password); if (($lastError = $svn->getLastError()) != '') { die(json_encode(array('result' => 'error', 'error' => $lastError))); } $revision = isset($_POST['revision']) && is_numeric($_POST['revision']) && $_POST['revision'] > 0 ? intval($_POST['revision']) : false; $filesList = $svn->listFiles($url, $revision); die(json_encode(array('result' => 'ok', 'files' => $filesList)));