svn新建目录,用代码方式实现。
需求如下:我需要在svn://xxxxx.cn/test 仓库下 创建 1000001/20001,这两个目录
//需求如下:我需要在svn://xxxxx.cn/test 仓库下 创建 1000001/20001,这两个目录
public function test(){
$data = "svn://xxxxx.cn/test/1000001/20001";//你要创建的目录,svn地址
$str = substr($data,strrpos($data,".cn")+4);//截取.cn之后的目录
$str_array = explode('/',$str);//分割为数组
$username ='xxx';//svn用户名
$password = 'xxx';//svn密码
$loc_address = 'svntest';// 本地仓库地址(我的地址在public/svntest)
$origin_svn_address = 'svn://xxxxx.cn/test/'; //远程仓库地 外网地址
$authCommand = ' --username ' . $username . ' --password ' . $password . ' --no-auth-cache';
$originname = $loc_address.'/'.basename($origin_svn_address); //仓库在本地目录地址
// $checkout = shell_exec("cd svntest && svn checkout $origin_svn_address $authCommand");//若本地没有svntest/test这个仓库,可先使用这行,新建仓库
foreach ($str_array as $k=>$v) {
if ($k!=0) {
// $info = shell_exec("cd $originname && svn info"); //查看svn详细信息(可用于调试,svn是否连接成功)
$res = shell_exec("cd $originname && svn update"); //更新
$add = shell_exec("cd $originname && mkdir -m 777 -p $v"); //递归创建目录并且赋予权限
$adds = shell_exec("cd $originname && svn add $v "); //svn增加
$commit = shell_exec("cd $originname && svn commit . -m 'aaa' --force-log $authCommand "); //提交
$originname.="/".$v;
}
}
}