gpt4 book ai didi

php - 在 Windows 和 Linux 机器上通过 Web 表单更新 SVN

转载 作者:可可西里 更新时间:2023-10-31 22:57:15 25 4
gpt4 key购买 nike

我已经为此工作了一段时间,但找不到解决方案(如果有的话)。

所以问题是:有没有办法通过 HTML 网络表单执行 svn update 请求?

我已经测试了多个基于 Web 的 SVN 客户端(包括构建我自己的),但它们都缺乏进行更新的可能性。

我知道这是 PHP 使用的用户权限的问题,但即使我将系统上的所有文件设置为 777(在虚拟机上试过),仍然没有我可以存档它的方式。

谁有这方面的经验?

已经谢谢你了。

我还查看了所有目录并将所有者设置为具有完全访问权限的Everyone。现在不会有权限问题......我想。

上次编辑:如果脚本文件不在 svn 目录的根目录中,我似乎无法执行 SVN。最终代码现在如下所示:http://codepad.org/Kb2K8e6m

最佳答案

下面的函数应该或多或少地为你做了。它还打印出:

  1. 它在 shell 中执行的确切命令
  2. 命令的输出(包括错误)以便它也可以被调试。

function updatesvn() {

if ( isset($_POST) ) {

//Get svn username and password from request parameters

$username = <your_svn_username>;
$password = <your_svn_password>;

//Get version number to move to
$values = $_POST;
$version = $values['revision'];

//validate version number

//Path where you have checked out your project
$rpath = '/var/www/myproj';

//Command to svn update
$cmd = "cd $rpath; svn cleanup; svn --non-interactive --username $username --password $password update -r $version 2>&1";

echo $cmd;
$out = shell_exec($cmd);

echo $out;
}
}

编辑:当心此代码中的安全漏洞。我在这里简化了它。我们曾在我们的一个应用程序中使用过它,在该应用程序中,达到这一点的用户被预先验证为 Web 应用程序的 Admin 用户。此外,这段代码是在 MVC 框架中执行的,在该框架中,输入验证在 Controller 中执行操作之前在中心位置完成。

关于php - 在 Windows 和 Linux 机器上通过 Web 表单更新 SVN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11754277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com