我的问题是我使用两个不同的页面(位于不同的文件夹中)调用相同的函数并获得两个不同的结果。目标是在textarea中提交内容,将其保存到文件中,然后提交此文件。
这是我的文件结构
\svntest\folio\00123\svn.php
\svntest\folio\00456\my_file.php
\svntest\test.php
\svntest\svncmd\commit.bat
commit.bat的内容
svn ci -m "hello" %1
\ svntest \ folio \ 00123 \ svn.php的内容:
if($_POST){
if( strlen($_POST['show_revision']) ){
$f = dirname(__FILE__);
$f .= '\\..\\..\\'.$file;
svn_save_file($_POST['show_revision'], $f);
svn_commit_file();
}
//header('location: svn.php');
}
<form method="post">
<fieldset><legend>Page Content</legend>
<div>
<textarea cols="50" rows="10" id="txtarea" name="txtarea"></textarea>
</div>
<div><input type="submit" value="Save"/></div>
</form>
\ svntest \ test.php的内容:
svn_commit_file();
函数svn_commit_file():
function svn_commit_file(){
$cmd = '"C:\\Documents and Settings\\me\\Desktop\\xampp\\htdocs\\xampp\\LearnPHP\\svntest\\svncmd\\commit.bat" "folio\\00456\\my_file.php"';
$out = system($cmd, $r);
}
什么行不通
file:\ svntest \ folio \ 00123 \ svn.php
结果:没有svn提交消息,没有任何内容从system()调用...
输出什么有用
file:\ svntest \ test.php
结果:获取svn commit消息并将版本添加到SVN
由于svn_commit_file()中的所有内容都是硬编码的,因此无法确定问题所在。
答案 0 :(得分:2)
我认为您应该为要检入的文件指定绝对路径。当前工作目录在test.php
和folio\00123\svn.php
之间有所不同。
function svn_commit_file(){
$cmd = '"C:\\Documents and Settings\\me\\Desktop\\xampp\\htdocs\\xampp\\LearnPHP\\svntest\\svncmd\\commit.bat" "C:\\Documents and Settings\\me\\Desktop\\xampp\\htdocs\\xampp\\LearnPHP\\svntest\\folio\\00456\\my_file.php"';
$out = system($cmd, $r);
}
答案 1 :(得分:0)
可能是路径问题
通过$_SERVER['DOCUMENT_ROOT']
函数中的svn_commit_file()
svn_commit_file($_SERVER['DOCUMENT_ROOT']);
基于这个完整的物理路径运行svn commit命令...可能正常工作
感谢