php在线更新svn

如果没有服务器权限,比如前端开发人员,可以用PHP做一个从svn上线的http接口。

    function svnupAction()
    {
        $encoding = 'export LC_ALL=en_US.UTF-8;export LANG=en_US.UTF-8;export LANGUAGE=en_US.UTF-8;';
        $out = '<pre>';
        $dir = Application::app()->getAppDirectory() . '/../data/svn/default';
        $path = Application::app()->getAppDirectory() . '/../public';
        $p = $this->getRequest()->getQuery('path', '');
        if (! empty($p)) {
            $path .= '/' . $p;
        }
        $out .= shell_exec(
            $encoding . '/usr/bin/svn up --config-dir=' . $dir . ' ' . $path .
                 ' 2>&1');
        $out .= '</pre>';
        echo $out;
        return false;
    }

需要提前在对应目录生成记住密码的svn配置

sudo -u apache export LC_ALL=en_US.UTF-8;export LANG=en_US.UTF-8;export LANGUAGE=en_US.UTF-8;/usr/bin/svn up --config-dir=/srv/www/xxx/app/../data/svn/default /srv/www/xxx/app/../public 2>&1

 

发表评论

电子邮件地址不会被公开。

*