Mi problema es que estoy llamando a la misma function usando dos páginas diferentes (ubicadas en diferentes carpetas) y obteniendo dos resultados diferentes. El objective es enviar contenido en un área de text, savelo en un file y luego confirmarlo.
Aquí está mi estructura de files
\svntest\folio\00123\svn.php \svntest\folio\00456\my_file.php \svntest\test.php \svntest\svncmd\commit.bat
El contenido de commit.bat
svn ci -m "hello" %1
El contenido de \ 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>
El contenido de \ svntest \ test.php:
svn_commit_file();
La function 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); }
Lo que no funciona
file: \ svntest \ folio \ 00123 \ svn.php
resultado: no hay ningún post de confirmación svn, nada sale de la llamada al sistema () …
Que funciona
file: \ svntest \ test.php
resultado: se obtiene el post svn commit y la versión se agrega a SVN
Como todo está codificado en svn_commit_file (), no veo dónde está el problema.
Creo que debe especificar una ruta absoluta para que se test.php
su file. El directory de trabajo actual difiere entre test.php
y 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); }
puede ser un problema con el path
pase el $_SERVER['DOCUMENT_ROOT']
en la function svn_commit_file()
svn_commit_file($_SERVER['DOCUMENT_ROOT']);
en function de esta ruta física completa, ejecute el command svn commit … probablemente funcione bien
Gracias