指定SVN版本FTP上传更新文件(PHP版)
2008-07-24 11:48
141 查看
菜鸟写的php小脚本,apache执行需指定用户权限.
将指定svn版本号(GET参数s)更新的文件上传到FTP上
将指定svn版本号(GET参数s)更新的文件上传到FTP上
阅读更多
<?php
$ftpserver = 'www.sitename.com';//ftp server
$ftpuser = 'test';//ftp user name
$ftppassword = 'test';//ftp user password
$svnrepository = "d:\web";//svn repository directory
$svnbinpath = "";//svn bin file directory
if($v1 = $_GET['s'])
{//版本号
$r = array();//执行外面svn命令返回的信息数组
$f = array();//匹配文件
$fa = array();//所有需上传的匹配文件
if($v2 = $_GET['e'])
{//至版本号(从起始版本号至版本号所有文件)
exec($svnbinpath." svn log $svnrepository -r {$v1}:{$v2} -q -v",$r);
}
else
{//单版本号
exec($svnbinpath." svn log $svnrepository -r {$v1} -q -v",$r);
}
foreach($r as $value)
{
if(preg_match("/^[ ]*[AM]{1} (\/.+)$/i",$value,$f))
{//符合文件更新规则的文件名放入上传数组
$fa[] = $f[1];
}
}
echo "revision: $v1 ".(($v2)?" - $v2":'')." need upload files:\n<br>";
foreach($fa as $value)
{
echo $svnrepository.$value."\n<br>";
}
if($fa)
{
$conn_id = ftp_connect($ftpserver);
$login_result = ftp_login($conn_id,$ftpuser,$ftppassword);
if ((!$conn_id) || (!$login_result))
{
echo "FTP connection has failed! :(\n<br>";
exit();
}
else
{
echo "\n<br>Connected to $ftpserver ftp\n<br>";
}
foreach($fa as $value)
{
$upload = ftp_put($conn_id, str_replace('\\','/',$value), $svnrepository.$value, FTP_BINARY);
if($upload)
{
echo "upload $value succeed :)\n<br>";
}
else
{
echo "upload $value failed :(\n<br>";
}
}
echo "upload completed";
ftp_close($conn_id);
}
}
else
{//无参数提示
echo '请输入版本号参数s,如需连续多个版本则加上参数e';
}
?>
相关文章推荐
- Intellij Idea 使用SVN对指定文件更新到指定版本
- php执行shell更新svn文件的方法
- SVN导出指定版本差异文件 ***
- SVN命令之更新到指定版本
- 将指定工程文件脱离svn版本控制
- SVN更新时不能打开新文件svn-base系统找不到指定的文件
- SVN实现在更新本地版本库时忽略指定目录
- SVN 更新时忽略指定文件或目录
- SVN实现在更新本地版本库时忽略指定目录
- PHP运行SVN命令显示某用户的文件更新记录的代码
- svn更新时忽略指定文件或文件夹
- Java调用svnkit,检出指定版本的文件
- OS X环境下SVN回滚工程到指定版本,回滚指定文件到指定版本
- 删除svn中指定的文件以及合并svn版本库
- linux svn更新到指定版本
- SVN文件过滤及版本更新
- 利用jenkins打造通过自定义参数更新svn 指定文件任务
- Intellij Idea 使用SVN更新到指定版本
- Intellij Idea 使用SVN更新到指定版本
- SVN版本更新后,upData工程之后,Xcode 工程文件打不开解决办法