예제 #1
0
 /**
  * @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;
 }
예제 #2
0
파일: get_diff.php 프로젝트: sgchris/mysvn
<?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))));
예제 #3
0
파일: get_info.php 프로젝트: sgchris/mysvn
<?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())));
예제 #4
0
<?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)));
예제 #5
0
<?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)));
예제 #6
0
파일: get_blame.php 프로젝트: sgchris/mysvn
<?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)));
예제 #7
0
<?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)));