Example #1
0
 public function getFileSize($file = '/', $version = -1)
 {
     if ($version == -1 || $version > $this->actVersion) {
         $version = $this->actVersion;
     }
     $url = $this->cleanURL($this->_url . "/!svn/bc/" . $version . "/" . $file . "/");
     $this->initQuery($args, "PROPFIND", $url);
     $args['Body'] = PHPSVN_GET_FILE_SIZE;
     $args['Headers']['Content-Length'] = strlen(PHPSVN_GET_FILE_SIZE);
     if (!$this->Request($args, $headers, $body)) {
         return false;
     }
     $xml2Array = new xml2Array();
     $arrOutput = $xml2Array->xmlParse($body);
     if ($arrOutput) {
         $files = array();
         foreach ($arrOutput['children'] as $key => $value) {
             array_walk_recursive($value, array($this, 'get_file_size_resursively'));
         }
         return $this->file_size;
     }
 }
Example #2
0
function GetLogs($fromRev)
{
    global $LNG;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_URL, 'http://2moons.googlecode.com/svn/trunk/');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type' => 'text/xml', 'Depth' => 1));
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'REPORT');
    curl_setopt($ch, CURLOPT_USERAGENT, "2Moons Update API");
    curl_setopt($ch, CURLOPT_CRLF, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, sprintf('<?xml version="1.0" encoding="utf-8"?> <S:log-report xmlns:S="svn:"> <S:start-revision>%d</S:start-revision><S:end-revision>%d</S:end-revision><S:path></S:path><S:discover-changed-paths/></S:log-report>', $fromRev, -1));
    $DATA = curl_exec($ch);
    curl_close($ch);
    if (function_exists('xml_parser_create')) {
        $xml2Array = new xml2Array();
        $arrOutput = $xml2Array->xmlParse($DATA);
        if ((array) $arrOutput['children'] === $arrOutput['children']) {
            $fileLogs = array();
            foreach ($arrOutput['children'] as $value) {
                if (empty($value['children'])) {
                    continue;
                }
                $array = array();
                $array['add'] = array();
                $array['edit'] = array();
                $array['del'] = array();
                foreach ($value['children'] as $entry) {
                    if ($entry['name'] == 'D:VERSION-NAME') {
                        $array['version'] = $entry['tagData'];
                    }
                    if ($entry['name'] == 'D:CREATOR-DISPLAYNAME') {
                        $array['author'] = $entry['tagData'];
                    }
                    if ($entry['name'] == 'S:DATE') {
                        $array['date'] = _date($LNG['php_tdformat'], strtotime($entry['tagData']), $USER['timezone']);
                    }
                    if ($entry['name'] == 'D:COMMENT') {
                        $array['comment'] = makebr($entry['tagData']);
                    }
                    if ($entry['name'] == 'S:ADDED-PATH' || $entry['name'] == 'S:MODIFIED-PATH' || $entry['name'] == 'S:DELETED-PATH') {
                        if (strpos($entry['tagData'], 'trunk/') === false) {
                            continue;
                        } else {
                            $entry['tagData'] = substr($entry['tagData'], 7);
                        }
                        if ($entry['name'] == 'S:ADDED-PATH') {
                            $array['add'][] = $entry['tagData'];
                        }
                        if ($entry['name'] == 'S:MODIFIED-PATH') {
                            $array['edit'][] = $entry['tagData'];
                        }
                        if ($entry['name'] == 'S:DELETED-PATH') {
                            $array['del'][] = $entry['tagData'];
                        }
                    }
                }
                array_push($fileLogs, $array);
            }
        } else {
            $fileLogs = array(array('error' => $LNG['up_offline']));
        }
    } else {
        $fileLogs = array(array('error' => $LNG['up_no_xml_ext']));
    }
    return $fileLogs;
}
Example #3
0
 /**
  *  Get changes logs of a file.
  *
  *  Get repository change of a file between version
  *  $vini and $vend.
  *
  *  @param
  *  @param integer $vini Initial Version
  *  @param integer $vend End Version
  *  @return Array Respository Logs
  */
 public function getFileLogs($file, $vini = 0, $vend = -1)
 {
     $fileLogs = array();
     $actVersion = $this->getVersion();
     if ($vend == -1 || $vend > $actVersion) {
         $vend = $actVersion;
     }
     if ($vini < 0) {
         $vini = 0;
     }
     if ($vini > $vend) {
         $vini = $vend;
     }
     $url = $this->cleanURL($this->_url . "/!svn/bc/" . $actVersion . "/" . $file . "/");
     $this->initQuery($args, "REPORT", $url);
     $args['Body'] = sprintf(PHPSVN_LOGS_REQUEST, $vini, $vend);
     $args['Headers']['Content-Length'] = strlen($args['Body']);
     $args['Headers']['Depth'] = 1;
     if (!$this->Request($args, $headers, $body)) {
         return false;
     }
     $xml2Array = new xml2Array();
     $arrOutput = $xml2Array->xmlParse($body);
     array_shift($arrOutput['children']);
     foreach ($arrOutput['children'] as $value) {
         $array = array();
         foreach ($value['children'] as $entry) {
             if ($entry['name'] == 'D:VERSION-NAME') {
                 $array['version'] = $entry['tagData'];
             }
             if ($entry['name'] == 'D:CREATOR-DISPLAYNAME') {
                 $array['author'] = $entry['tagData'];
             }
             if ($entry['name'] == 'S:DATE') {
                 $array['date'] = $entry['tagData'];
             }
             if ($entry['name'] == 'D:COMMENT') {
                 $array['comment'] = $entry['tagData'];
             }
             if ($entry['name'] == 'S:ADDED-PATH' || $entry['name'] == 'S:MODIFIED-PATH' || $entry['name'] == 'S:DELETED-PATH') {
                 // For backward compatability
                 $array['files'][] = $entry['tagData'];
                 if ($entry['name'] == 'S:ADDED-PATH') {
                     $array['add_files'][] = $entry['tagData'];
                 }
                 if ($entry['name'] == 'S:MODIFIED-PATH') {
                     $array['mod_files'][] = $entry['tagData'];
                 }
                 if ($entry['name'] == 'S:DELETED-PATH') {
                     $array['del_files'][] = $entry['tagData'];
                 }
             }
         }
         array_push($fileLogs, $array);
     }
     return $fileLogs;
 }