当前位置: 首页>>代码示例>>PHP>>正文


PHP Project::Fill方法代码示例

本文整理汇总了PHP中Project::Fill方法的典型用法代码示例。如果您正苦于以下问题:PHP Project::Fill方法的具体用法?PHP Project::Fill怎么用?PHP Project::Fill使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Project的用法示例。


在下文中一共展示了Project::Fill方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testManageClientTest

 public function testManageClientTest()
 {
     // set the repository for the project
     $project = new Project();
     $project->Id = 3;
     $project->Fill();
     $project->AddRepositories(array('git://fake/repo.git'), array(''), array(''), array(''));
     // submit a mock machine config xml
     $machineDescription = dirname(__FILE__) . '/data/camelot.cdash.xml';
     $result = $this->uploadfile($this->url . '/submit.php?sitename=camelot.kitware&systemname=Ubuntu32&submitinfo=1', $machineDescription);
     if ($this->findString($result, 'error') || $this->findString($result, 'Warning') || $this->findString($result, 'Notice')) {
         $this->assertEqual($result, "\n");
         return false;
     }
     // schedule a job for the machine
     $this->login();
     $this->connect($this->url . '/manageClient.php?projectid=3');
     $scriptContents = 'message("hello world")';
     $this->setField('clientscript', $scriptContents);
     $this->clickSubmitByName('submit');
     // get the site id
     $siteid = $this->get($this->url . '/submit.php?sitename=camelot.kitware&systemname=Ubuntu32&getsiteid=1');
     // wait a few seconds so that we know we are ahead of the schedule time
     sleep(5);
     // verify that we receive the correct script when we query for a job
     $content = $this->get($this->url . '/submit.php?getjob=1&siteid=' . $siteid);
     if (!$this->findString($content, 'message("hello world")')) {
         $this->fail('Wrong script was sent: expected hello world script but got: ' . $content . ' for siteid=' . $siteid);
         return false;
     }
     $this->pass('Passed');
     return 0;
 }
开发者ID:kitware,项目名称:cdash,代码行数:33,代码来源:test_customclientscript.php

示例2: testSetupRepositories

 public function testSetupRepositories()
 {
     $insight = new Project();
     $row = pdo_single_row_query("SELECT id FROM project where name='InsightExample'");
     $insight->Id = $row['id'];
     $insight->Fill();
     $insight->AddRepositories(array(':pserver:anoncvs@itk.org:/cvsroot/Insight'), array('anoncvs'), array(''), array(''));
     $insight->CTestTemplateScript = 'client testing works';
     $insight->Save();
     $pub = new Project();
     $row = pdo_single_row_query("SELECT id FROM project where name='PublicDashboard'");
     $pub->Id = $row['id'];
     $pub->Fill();
     $pub->AddRepositories(array('git://cmake.org/cmake.git'), array(''), array(''), array(''));
     $pub->CvsViewerType = 'gitweb';
     $pub->CvsUrl = 'cmake.org/gitweb?p=cmake.git';
     $pub->Save();
     $email = new Project();
     $row = pdo_single_row_query("SELECT id FROM project where name='EmailProjectExample'");
     $email->Id = $row['id'];
     $email->Fill();
     $email->AddRepositories(array('https://www.kitware.com/svn/CDash/trunk'), array(''), array(''), array(''));
     $pub->CvsViewerType = 'websvn';
     $email->CvsUrl = 'https://www.kitware.com/svn/CDash/trunk';
     $email->Save();
 }
开发者ID:kitware,项目名称:cdash,代码行数:26,代码来源:test_setup_repositories.php

示例3: createProject

 public function createProject($input_settings, $update = false)
 {
     require_once 'models/project.php';
     if ($update) {
         // Updating an existing project.
         if (!array_key_exists('Id', $input_settings)) {
             $this->fail("Project Id must be set");
             return false;
         }
         // Load its current settings.
         $project = new Project();
         $project->Id = $input_settings['Id'];
         $project->Fill();
         $settings = get_object_vars($project);
         $submit_button = 'Update';
     } else {
         // Create a new project.
         if (!array_key_exists('Name', $input_settings)) {
             $this->fail("Project name must be set");
             return false;
         }
         // Specify some default settings.
         $settings = array('AutoremoveMaxBuilds' => 500, 'AutoremoveTimeframe' => 60, 'CoverageThreshold' => 70, 'CvsViewerType' => 'viewcvs', 'EmailBrokenSubmission' => 1, 'EmailMaxChars' => 255, 'EmailMaxItems' => 5, 'NightlyTime' => '01:00:00 UTC', 'Public' => 1, 'ShowCoverageCode' => 1, 'TestTimeMaxStatus' => 3, 'TestTimeStd' => 4, 'TestTimeStdThreshold' => 1, 'UploadQuota' => 1);
         $submit_button = 'Submit';
     }
     // Override default/existing settings with those we wish to change.
     foreach ($input_settings as $k => $v) {
         $settings[$k] = $v;
     }
     // Login as admin.
     $client = new GuzzleHttp\Client(['cookies' => true]);
     global $CDASH_BASE_URL;
     try {
         $response = $client->request('POST', $CDASH_BASE_URL . '/user.php', ['form_params' => ['login' => 'simpletest@localhost', 'passwd' => 'simpletest', 'sent' => 'Login >>']]);
     } catch (GuzzleHttp\Exception\ClientException $e) {
         $this->fail($e->getMessage());
         return false;
     }
     // Create project.
     try {
         $response = $client->request('POST', $CDASH_BASE_URL . '/api/v1/project.php', ['json' => [$submit_button => true, 'project' => $settings]]);
     } catch (GuzzleHttp\Exception\ClientException $e) {
         $this->fail($e->getMessage());
         return false;
     }
     $response_array = json_decode($response->getBody(), true);
     $projectid = $response_array['project']['Id'];
     // Make sure all of our settings were applied successfully.
     $project = new Project();
     $project->Id = $projectid;
     $project->Fill();
     if (!$project->Exists()) {
         $this->fail("Project does not exist after it should have been created");
     }
     foreach ($input_settings as $k => $v) {
         if ($k === 'repositories') {
             // Special handling for repositories as these aren't
             // simple project properties.
             $added_repos = $v;
             $num_added_repos = count($added_repos);
             $project_repos = $project->GetRepositories();
             $matches_found = 0;
             foreach ($project_repos as $project_repo) {
                 foreach ($added_repos as $added_repo) {
                     if ($project_repo['url'] === $added_repo['url'] && $project_repo['branch'] === $added_repo['branch'] && $project_repo['username'] === $added_repo['username'] && $project_repo['password'] === $added_repo['password']) {
                         $matches_found++;
                     }
                 }
             }
             if ($matches_found != count($added_repos)) {
                 $this->fail("Attempted to add {$num_added_repos} but only found {$matches_found}");
             }
         } else {
             $found_value = $project->{$k};
             if ($found_value != $v) {
                 $this->fail("Expected {$v} but found {$found_value} for {$k}");
             }
         }
     }
     return $projectid;
 }
开发者ID:kitware,项目名称:cdash,代码行数:81,代码来源:kw_web_tester.php

示例4: sendemail

/** Main function to send email if necessary */
function sendemail($handler, $projectid)
{
    include 'config/config.php';
    include_once 'include/common.php';
    require_once 'include/pdo.php';
    require_once 'models/build.php';
    require_once 'models/project.php';
    require_once 'models/buildgroup.php';
    $Project = new Project();
    $Project->Id = $projectid;
    $Project->Fill();
    $sendEmail = null;
    if ($CDASH_USE_LOCAL_DIRECTORY && file_exists('local/sendemail.php')) {
        include_once 'local/sendemail.php';
        $sendEmail = new SendEmail();
        $sendEmail->SetProjectId($projectid);
    }
    // If we shouldn't sent any emails we stop
    if ($Project->EmailBrokenSubmission == 0) {
        return;
    }
    // If the handler has a buildid (it should), we use it
    if (isset($handler->BuildId) && $handler->BuildId > 0) {
        $buildid = $handler->BuildId;
    } else {
        // Get the build id
        $name = $handler->getBuildName();
        $stamp = $handler->getBuildStamp();
        $sitename = $handler->getSiteName();
        $buildid = get_build_id($name, $stamp, $projectid, $sitename);
    }
    if ($buildid < 0) {
        return;
    }
    //add_log("Buildid ".$buildid,"sendemail ".$Project->Name,LOG_INFO);
    //  Check if the group as no email
    $Build = new Build();
    $Build->Id = $buildid;
    $groupid = $Build->GetGroup();
    $BuildGroup = new BuildGroup();
    $BuildGroup->SetId($groupid);
    // If we specified no email we stop here
    if ($BuildGroup->GetSummaryEmail() == 2) {
        return;
    }
    $emailCommitters = $BuildGroup->GetEmailCommitters();
    $errors = check_email_errors($buildid, $Project->EmailTestTimingChanged, $Project->TestTimeMaxStatus, !$Project->EmailRedundantFailures);
    // We have some fixes
    if ($errors['hasfixes']) {
        $Build->FillFromId($Build->Id);
        // Get the list of person who should get the email
        $lookup_result = lookup_emails_to_send($errors, $buildid, $projectid, $Build->Type, true, $emailCommitters);
        $userids = $lookup_result['userids'];
        foreach ($userids as $userid) {
            $emailtext = array();
            $emailtext['nfixes'] = 0;
            // Check if an email has been sent already for this user
            foreach ($errors['fixes'] as $fixkey => $nfixes) {
                if ($nfixes == 0) {
                    continue;
                }
                if (!check_email_sent($userid, $buildid, $fixkey)) {
                    $emailtext['category'][$fixkey] = $nfixes;
                    $emailtext['nfixes'] = 1;
                }
            }
            // Send the email
            if ($emailtext['nfixes'] == 1) {
                send_email_fix_to_user($userid, $emailtext, $Build, $Project);
            }
        }
    }
    // No error we return
    if (!$errors['errors']) {
        return;
    }
    if ($CDASH_USE_LOCAL_DIRECTORY && file_exists('local/sendemail.php')) {
        $sendEmail->BuildId = $Build->Id;
        $sendEmail->Errors = $errors;
    }
    // If we should send a summary email
    if ($BuildGroup->GetSummaryEmail() == 1) {
        // Send the summary email
        sendsummaryemail($projectid, $groupid, $errors, $buildid);
        if ($CDASH_USE_LOCAL_DIRECTORY && file_exists('local/sendemail.php')) {
            $sendEmail->SendSummary();
        }
        return;
    }
    $Build->FillFromId($Build->Id);
    // Send build error
    if ($CDASH_USE_LOCAL_DIRECTORY && file_exists('local/sendemail.php')) {
        $sendEmail->SendBuildError();
    }
    // Lookup the list of people who should get the email, both registered
    // users *and* committers:
    //
    $lookup_result = lookup_emails_to_send($errors, $buildid, $projectid, $Build->Type, false, $emailCommitters);
    // Loop through the *registered* users:
//.........这里部分代码省略.........
开发者ID:kitware,项目名称:cdash,代码行数:101,代码来源:sendemail.php

示例5: echo_main_dashboard_JSON

        return;
    } else {
        // redirect to the install.php script
        $response = array();
        $response['redirect'] = get_server_URI() . '/install.php';
        echo json_encode($response);
        return;
    }
    return;
}
@($projectname = $_GET['project']);
$projectname = htmlspecialchars(pdo_real_escape_string($projectname));
$projectid = get_project_id($projectname);
$Project = new Project();
$Project->Id = $projectid;
$Project->Fill();
@($date = $_GET['date']);
if ($date != null) {
    $date = htmlspecialchars(pdo_real_escape_string($date));
}
echo_main_dashboard_JSON($Project, $date);
// Generate the main dashboard JSON response.
function echo_main_dashboard_JSON($project_instance, $date)
{
    $start = microtime_float();
    $noforcelogin = 1;
    include_once dirname(dirname(dirname(__DIR__))) . '/config/config.php';
    require_once 'include/pdo.php';
    include 'public/login.php';
    include_once 'models/banner.php';
    include_once 'models/build.php';
开发者ID:kitware,项目名称:cdash,代码行数:31,代码来源:index.php

示例6: GetCTestScript

 public function GetCTestScript()
 {
     if (!$this->Id || !$this->SiteId) {
         add_log('ClientJobSchedule:GetCTestScript', 'Id not set');
         return;
     }
     include 'config/config.php';
     // Update the current run
     pdo_query("UPDATE client_jobschedule SET lastrun='" . date(FMT_DATETIMESTD) . "' WHERE id=" . qnum($this->Id));
     $ClientSite = new ClientSite();
     $ClientSite->Id = $this->SiteId;
     // Create a job
     $job = new ClientJob();
     $job->ScheduleId = $this->Id;
     $job->StartDate = date('Y-m-d H:i:s');
     $job->EndDate = date('1980-01-01 00:00:00');
     $job->Status = CDASH_JOB_RUNNING;
     $job->SiteId = $this->SiteId;
     $job->OsId = $ClientSite->GetOS();
     // Determine the appropriate CMake id (get the newest version)
     $cmake = pdo_query('SELECT sc.cmakeid FROM client_cmake,client_site2cmake AS sc
                   LEFT JOIN client_jobschedule2cmake AS jc ON (jc.cmakeid=sc.cmakeid)
                   WHERE client_cmake.id=sc.cmakeid AND sc.siteid=' . $this->SiteId . '
                   ORDER BY client_cmake.version DESC LIMIT 1');
     $cmake_array = pdo_fetch_array($cmake);
     $job->CMakeId = $cmake_array[0];
     // Determine the appropriate compiler
     $compiler = pdo_query('SELECT sc.compilerid FROM client_compiler,client_site2compiler AS sc
                      LEFT JOIN client_jobschedule2compiler AS jc ON (jc.compilerid=sc.compilerid)
                      WHERE client_compiler.id=sc.compilerid AND sc.siteid=' . $this->SiteId . '
                      ORDER BY client_compiler.version DESC LIMIT 1');
     $compiler_array = pdo_fetch_array($compiler);
     $job->CompilerId = $compiler_array[0];
     $job->Save();
     $Project = new Project();
     $Project->Id = $this->GetProjectId();
     $Project->Fill();
     $compiler = new ClientCompiler();
     $compiler->Id = $job->CompilerId;
     $os = new ClientOS();
     $os->Id = $job->OsId;
     // Initialize the variables
     $buildtype = 'Experimental';
     //default
     switch ($this->GetType()) {
         case CDASH_JOB_EXPERIMENTAL:
             $buildtype = 'Experimental';
             break;
         case CDASH_JOB_NIGHTLY:
             $buildtype = 'Nightly';
             break;
         case CDASH_JOB_CONTINUOUS:
             $buildtype = 'Continuous';
             break;
     }
     $ctest_script = '#' . $this->Id . "\n";
     $ctest_script .= '#' . $Project->Name . "\n";
     $ctest_script .= 'SET(JOB_BUILDTYPE ' . $buildtype . ')' . "\n";
     $ctest_script .= 'SET(PROJECT_NAME "' . $Project->Name . '")' . "\n";
     if (strlen($this->GetModule()) > 0) {
         $ctest_script .= 'SET(JOB_MODULE "' . $this->GetModule() . '")' . "\n";
     }
     if (strlen($this->GetTag()) > 0) {
         $ctest_script .= 'SET(JOB_TAG "' . $this->GetTag() . '")' . "\n";
     }
     if (strlen($this->GetBuildNameSuffix()) > 0) {
         $ctest_script .= 'SET(JOB_BUILDNAME_SUFFIX "' . $this->GetBuildNameSuffix() . '")' . "\n";
     }
     $ctest_script .= 'SET(JOB_CMAKE_GENERATOR "' . $ClientSite->GetCompilerGenerator($job->CompilerId) . '")' . "\n";
     $ctest_script .= 'SET(JOB_BUILD_CONFIGURATION "' . $this->BuildConfigurations[$this->GetBuildConfiguration()] . '")' . "\n";
     $ctest_script .= 'SET(CLIENT_BASE_DIRECTORY "' . $ClientSite->GetBaseDirectory() . '")' . "\n";
     $ctest_script .= 'SET(CLIENT_CMAKE_PATH "' . $ClientSite->GetCMakePath($job->CMakeId) . '")' . "\n";
     $ctest_script .= 'SET(CLIENT_SITE "' . $ClientSite->GetName() . '")' . "\n";
     $ctest_script .= 'SET(JOB_OS_NAME "' . $os->GetName() . '")' . "\n";
     $ctest_script .= 'SET(JOB_OS_VERSION "' . $os->GetVersion() . '")' . "\n";
     $ctest_script .= 'SET(JOB_OS_BITS "' . $os->GetBits() . '")' . "\n";
     $ctest_script .= 'SET(JOB_COMPILER_NAME "' . $compiler->GetName() . '")' . "\n";
     $ctest_script .= 'SET(JOB_COMPILER_VERSION "' . $compiler->GetVersion() . '")' . "\n";
     $ctest_script .= 'SET(JOB_REPOSITORY "' . $this->GetRepository() . '")' . "\n";
     // Set the program variables
     $programs = $ClientSite->GetPrograms();
     $currentname = '';
     foreach ($programs as $program) {
         $program_name = strtoupper($program['name']);
         $program_version = str_replace('.', '_', strtoupper($program['version']));
         if ($program['name'] != $currentname) {
             $ctest_script .= 'SET(CLIENT_EXECUTABLE_' . $program_name . ' "' . $program['path'] . '")' . "\n";
             $currentname = $program['name'];
         }
         $ctest_script .= 'SET(CLIENT_EXECUTABLE_' . $program_name . '_' . $program_version . ' "' . $program['path'] . '")' . "\n";
     }
     if ($CDASH_USE_HTTPS === true) {
         $ctest_script .= 'set(CTEST_DROP_METHOD "https")' . "\n";
     } else {
         $ctest_script .= 'set(CTEST_DROP_METHOD "http")' . "\n";
     }
     $serverName = $CDASH_SERVER_NAME;
     if (strlen($serverName) == 0) {
         $serverName = $_SERVER['SERVER_NAME'];
     }
//.........这里部分代码省略.........
开发者ID:kitware,项目名称:cdash,代码行数:101,代码来源:clientjobschedule.php

示例7: htmlspecialchars

$response = begin_JSON_response();
$response['title'] = 'CDash : Compare Coverage';
$response['showcalendar'] = 1;
// Check if a valid project was specified.
$projectname = $_GET['project'];
$projectname = htmlspecialchars(pdo_real_escape_string($projectname));
$projectid = get_project_id($projectname);
if ($projectid < 1) {
    $response['error'] = 'This project does not exist. Maybe the URL you are trying to access is wrong.';
    echo json_encode($response);
    http_response_code(400);
    return;
}
$project_instance = new Project();
$project_instance->Id = $projectid;
$project_instance->Fill();
@($date = $_GET['date']);
if ($date != null) {
    $date = htmlspecialchars(pdo_real_escape_string($date));
}
$logged_in = false;
if (isset($_SESSION['cdash']) && isset($_SESSION['cdash']['loginid'])) {
    $logged_in = true;
}
if (!checkUserPolicy(@$_SESSION['cdash']['loginid'], $projectid, 1)) {
    if ($logged_in) {
        $response['error'] = 'You do not have permission to access this page.';
        echo json_encode($response);
        http_response_code(403);
    } else {
        $response['requirelogin'] = 1;
开发者ID:kitware,项目名称:cdash,代码行数:31,代码来源:compareCoverage.php

示例8: endElement

 /** Function endElement */
 public function endElement($parser, $name)
 {
     $parent = $this->getParent();
     // should be before endElement
     parent::endElement($parser, $name);
     if ($this->UploadError) {
         return;
     }
     if ($name == 'FILE' && $parent == 'UPLOAD') {
         $this->UploadFile->BuildId = $this->BuildId;
         // Close base64 temporary file writing handler
         fclose($this->Base64TmpFileWriteHandle);
         unset($this->Base64TmpFileWriteHandle);
         // Decode file using 'read by chunk' approach to minimize memory footprint
         // Note: Using stream_filter_append/stream_copy_to_stream is more efficient but
         // return an "invalid byte sequence" on windows
         $rhandle = fopen($this->Base64TmpFilename, 'r');
         $whandle = fopen($this->TmpFilename, 'w+');
         $chunksize = 4096;
         while (!feof($rhandle)) {
             fwrite($whandle, base64_decode(fread($rhandle, $chunksize)));
         }
         fclose($rhandle);
         unset($rhandle);
         fclose($whandle);
         unset($whandle);
         // Delete base64 encoded file
         $success = cdash_unlink($this->Base64TmpFilename);
         if (!$success) {
             add_log("Failed to delete file '" . $this->Base64TmpFilename . "'", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_WARNING);
         }
         // Check file size against the upload quota
         $upload_file_size = filesize($this->TmpFilename);
         $Project = new Project();
         $Project->Id = $this->projectid;
         $Project->Fill();
         if ($upload_file_size > $Project->UploadQuota) {
             add_log("Size of uploaded file {$this->TmpFilename} is {$upload_file_size} bytes, which is greater " . "than the total upload quota for this project ({$Project->UploadQuota} bytes)", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_ERR);
             $this->UploadError = true;
             cdash_unlink($this->TmpFilename);
             return;
         }
         // Compute SHA1 of decoded file
         $upload_file_sha1 = sha1_file($this->TmpFilename);
         // TODO Check if a file if same buildid, sha1 and name has already been uploaded
         $this->UploadFile->Sha1Sum = $upload_file_sha1;
         $this->UploadFile->Filesize = $upload_file_size;
         // Extension of the file indicates if it's a data file that should be hosted on CDash of if
         // an URL should just be considered. File having extension ".url" are expected to contain an URL.
         $path_parts = pathinfo($this->UploadFile->Filename);
         $ext = $path_parts['extension'];
         if ($ext == "url") {
             $this->UploadFile->IsUrl = true;
             // Read content of the file
             $url_length = 255;
             // max length of 'uploadfile.filename' field
             $this->UploadFile->Filename = trim(file_get_contents($this->TmpFilename, NULL, NULL, 0, $url_length));
             cdash_unlink($this->TmpFilename);
             //add_log("this->UploadFile->Filename '".$this->UploadFile->Filename."'", __FILE__.':'.__LINE__.' - '.__FUNCTION__, LOG_INFO);
         } else {
             $this->UploadFile->IsUrl = false;
             $upload_dir = realpath($GLOBALS['CDASH_UPLOAD_DIRECTORY']);
             if (!$upload_dir) {
                 add_log("realpath cannot resolve CDASH_UPLOAD_DIRECTORY '" . $GLOBALS['CDASH_UPLOAD_DIRECTORY'] . "' with cwd '" . getcwd() . "'", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_WARNING);
             }
             $upload_dir .= '/' . $this->UploadFile->Sha1Sum;
             $uploadfilepath = $upload_dir . '/' . $this->UploadFile->Sha1Sum;
             // Check if upload directory should be created
             if (!file_exists($upload_dir)) {
                 $success = mkdir($upload_dir);
                 if (!$success) {
                     add_log("Failed to create directory '" . $upload_dir . "'", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_ERR);
                     $this->UploadError = true;
                     return;
                 }
             }
             // Check if file has already been referenced
             if (!file_exists($uploadfilepath)) {
                 $success = rename($this->TmpFilename, $uploadfilepath);
                 if (!$success) {
                     add_log("Failed to rename file '" . $this->TmpFilename . "' into '" . $uploadfilepath . "'", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_ERR);
                     $this->UploadError = true;
                     return;
                 }
             } else {
                 // Delete decoded temporary file since it has already been addressed
                 $success = cdash_unlink($this->TmpFilename);
                 if (!$success) {
                     add_log("Failed to delete file '" . $this->TmpFilename . "'", __FILE__ . ':' . __LINE__ . ' - ' . __FUNCTION__, LOG_WARNING);
                 }
             }
             // Generate symlink name
             $symlinkName = $path_parts['basename'];
             // Check if symlink should be created
             $createSymlink = !file_exists($upload_dir . '/' . $symlinkName);
             if ($createSymlink) {
                 // Create symlink
                 if (function_exists("symlink")) {
                     $success = symlink($uploadfilepath, $upload_dir . '/' . $symlinkName);
//.........这里部分代码省略.........
开发者ID:rpshaw,项目名称:CDash,代码行数:101,代码来源:upload_handler.php

示例9: perform_version_only_diff

/** Find changes for a "version only" update. */
function perform_version_only_diff($update, $projectid)
{
    // Return early if we don't have a current revision.
    if (empty($update->Revision)) {
        return;
    }
    // Return early if this project doesn't have a remote repository viewer.
    require_once 'models/buildupdate.php';
    require_once 'models/project.php';
    $project = new Project();
    $project->Id = $projectid;
    $project->Fill();
    if (strlen($project->CvsUrl) === 0 || strlen($project->CvsViewerType) === 0) {
        return;
    }
    // Return early if we don't have an implementation for this repository viewer.
    $viewertype = strtolower($project->CvsViewerType);
    $function_name = 'perform_' . $viewertype . '_version_only_diff';
    if (!function_exists($function_name)) {
        return;
    }
    // Return early if we don't have a previous build to compare against.
    require_once 'models/build.php';
    $build = new Build();
    $build->Id = $update->BuildId;
    $previous_buildid = $build->GetPreviousBuildId();
    if ($previous_buildid < 1) {
        return;
    }
    // Get the revision for the previous build.
    $pdo = get_link_identifier()->getPdo();
    $stmt = $pdo->prepare('SELECT revision FROM buildupdate AS bu
            INNER JOIN build2update AS b2u ON (b2u.updateid=bu.id)
            WHERE b2u.buildid=?');
    $stmt->execute(array($previous_buildid));
    $row = $stmt->fetch();
    if (empty($row) || !isset($row['revision'])) {
        return;
    }
    $previous_revision = $row['revision'];
    if (empty($previous_revision)) {
        return;
    }
    // Record the previous revision in the buildupdate table.
    $stmt = $pdo->prepare('UPDATE buildupdate SET priorrevision=? WHERE id=?');
    $stmt->execute(array($previous_revision, $update->UpdateId));
    // Call the implementation specific to this repository viewer.
    $update->Append = true;
    return $function_name($project, $update, $previous_revision);
}
开发者ID:kitware,项目名称:cdash,代码行数:51,代码来源:repository.php


注:本文中的Project::Fill方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。