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


PHP Git::clone_remote方法代码示例

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


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

示例1: cloneRepo

 /**
  * 将远程代码clone到本地
  *
  * 如果本地已有,则先删除
  *
  * @param $repoPath
  * @param $gitRemote
  *
  * @return bool
  */
 public function cloneRepo($repoPath, $gitRemote)
 {
     if (file_exists($repoPath)) {
         $this->removeRepoDir($repoPath);
     }
     // clone远程库
     $gitRepo = Git::clone_remote($repoPath, $gitRemote);
     // 将所有远程分支checkout到本地
     $remoteBranches = $gitRepo->list_remote_branches();
     foreach ($remoteBranches as $key => $remote) {
         $branch = substr($remote, strpos($remote, '/') + 1);
         if ('master' == $branch) {
             continue;
         }
         // master分支在clone时已经创建了
         // git checkout -b dev_zsk2 origin/dev_zsk2
         $gitRepo->checkout_remote($branch, $remote);
     }
     return true;
 }
开发者ID:sdgdsffdsfff,项目名称:JustDeployIt,代码行数:30,代码来源:Repository.php

示例2: get_update

function get_update($sname, $file_lock, $base_url, $path, $mail_lock, $remote_git = '', $remote_branch = '')
{
    session_name($sname);
    session_start();
    set_time_limit(300);
    ignore_user_abort(true);
    $stime = time();
    $work = false;
    //检测、设置工作标志,存在session里(同一个session_name在一个页面未结束前会保持读写锁状态)
    if (empty($_SESSION['working'])) {
        $work = true;
    }
    if (file_exists($file_lock)) {
        $last_work_time = filemtime($file_lock);
        if ($last_work_time > 0 && time() - $last_work_time < 120) {
            //上次更新至今有120秒
            echo "检测到正在进行工作中,本页面停止载入,请稍后再次访问。";
            return false;
            //exit;
        }
        $work = true;
        unlink($file_lock);
    } elseif (empty($_SESSION['work_time']) || $stime - $_SESSION['work_time'] > LOCK_TIME) {
        //保证 LOCK_TIME 秒内只访问一次
        $work = true;
    }
    if ($work && !file_exists($file_lock)) {
        $_SESSION['working'] = true;
        $_SESSION['work_time'] = $stime;
        file_put_contents($file_lock, $stime);
    } else {
        echo "距离上次获取请求时间间隔多短,请稍后再次访问。";
        return false;
        //exit;
    }
    echo date("Y-m-d H:i:s") . " 读取列表中...<br>";
    $list = get_list($base_url);
    //获取列表
    if (count($list) < 2) {
        echo "读取Wiki列表失败,等待下次检测。<br>";
        $_SESSION['work_time'] = $stime - LOCK_TIME;
        //取消检查时间,让检测可在稍后再次发起
        unlink($file_lock);
        return false;
    }
    session_write_close();
    //解除session,防止使其他访问页面一直等待session
    mk_dir($path);
    if (IS_WIN) {
        Git::windows_mode();
    }
    if (!file_exists($path . '.git')) {
        echo date("Y-m-d H:i:s") . " 没有git库,尝试创建...<br>";
        if ($remote_git) {
            //是否设置了远程仓库
            echo "尝试从远程仓库克隆数据...<br>";
            $ret = Git::clone_remote($path, $remote_git, $remote_branch);
            //从远程仓库clone(可指定分支)
            if (!Git::is_repo($ret) || !file_exists($path . '.git') || !$ret) {
                echo "从远程仓库克隆失败,本地创建...<br>";
                $ret = Git::create($path);
                //如果clone失败,则本地创建
            }
        } else {
            $ret = Git::create($path);
        }
        //直接本地创建
        echo date("Y-m-d H:i:s") . " 创建结果:" . (Git::is_repo($ret) ? '成功' : '失败') . "<br>";
    }
    $files = ls_file($path);
    foreach ($files as $file) {
        if (!is_dir($path . $file)) {
            unlink($path . $file);
        }
    }
    $tmp_arr = parse_url($base_url);
    $url_base = $tmp_arr['scheme'] . '://' . $tmp_arr['host'];
    write($path . 'list.txt', json($list));
    //写出列表
    echo date("Y-m-d H:i:s") . " 读取wiki列表完毕,开始读取内容页...<br>";
    $count = 0;
    $content = get_content($base_url);
    write($path . 'index.html', $content);
    $count++;
    foreach ($list as $arr) {
        if (isset($arr['ul'])) {
            foreach ($arr['ul'] as $a) {
                if (substr($a['url'], 0, 1) == '.' || substr($a['url'], 0, 1) == '/') {
                    //地址以.或/开头,则为wiki文档
                    $content = get_content((substr($a['url'], 0, 1) == '/' ? $url_base : (substr($a['url'], 0, 1) == '.' ? $url_base . $tmp_arr['path'] : '')) . $a['url']);
                    if ($content) {
                        write($path . $a['title'] . '.html', $content);
                        $count++;
                    }
                }
            }
        }
    }
    echo date("Y-m-d H:i:s") . " 获取操作完成,读取页面数量:" . $count . "<br>";
    $repo = Git::open($path);
//.........这里部分代码省略.........
开发者ID:l1291434519,项目名称:MpWiki_check,代码行数:101,代码来源:Base.php


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