¿Cómo puedo usar svn + ssh en un script PHP?

No puedo entender cómo debo acceder al repository desde un proyecto de CakePHP llamado fnetworkingistrano (puedes hacer implementaciones de CakePHP con una interfaz web 2.0). Tengo fnetworkingistrano en mi directory de transmisión web en un server web compartido de Unix. cuando utilizo tortoisesvn desde mi computadora portátil, tengo que usar svn + ssh: //nombnetworkingeusuario@dominio.com/svnpath/trunk/. intenté usar lo mismo en fnetworkingistrano, pero sigo recibiendo el error del command svn "svn: connection de networking cerrada inesperadamente". Copié y pegué el command: svn export –non-interactive –username myusername –password mypwd svn + ssh: //myusername@mydomain.com/home/myusername/svn/mydomain.com/trunk tmpDir 2> & 1 en mi terminal SSH conectada al server compartido y recibo una request de una contraseña, que creo que es un aviso para la contraseña de SSH y no para la contraseña de SVN (ver esta publicación ). fnetworkingistrano está fallando porque no puede tratar con la request de contraseña SSH. Noté en la documentation de fnetworkingistrano que el ejemplo usa http: // ipaddress / svn / test para la URL SVN. Copié mi svn a mi directriz de transmisión web y lo intenté, pero obtuve un error de connection rechazada. mi proveedor de alojamiento compartido es bastante estricto y dudo que pueda usarlo. ¿Hay alguna manera de hacer que svn + ssh funcione con un script PHP como este (fnetworkingistrano solo está usando shell_exec () para ejecutar commands svn)? ¿Hay alguna manera de que pueda get el funcionamiento de svn, http o https (o cualquier otro método que desconozca)?

También estoy interesado en este problema, y ​​espero estar cerca de la solución.

No he intentado ponerlo en práctica en mi aplicación debido a la falta de time y otras tareas de alta prioridad, pero creo que debería verse más o less así:

shell_exec(svn something svn+ssh://...)

$response = trim(fgets(STDIN))

[luego verifique si la respuesta contiene text de request de contraseña]

fwrite(STDOUT, 'yourpassword');

[Analice la siguiente respuesta y vea si SVN ha devuelto la información solicitada: logging, información, lo que sea]

"svn: Network connection closed unexpectedly" probablemente significa que su host tiene acceso restringido / prohibido a otros hosts. Esto podría implicar el uso de sockets en absoluto (SVN, HTTP, etc.) o tal vez solo no HTTP. En este caso, debe intentar configurar su server SVN para permitir requestes HTTP (por ejemplo, usando mod_dav_svn para Apache).

Esto es solo una suposition – vea mi comentario a su pregunta.

¿Cómo se autentica desde su máquina de desarrollo al server svn? Es posible que esté utilizando una key para autenticarse (¿tiene putt putty en ejecución?)

tal vez revise el Módulo PHP de Subversion (1.0.3) en lugar de envolver el shell_exec ; requiere build desde la fuente, con phpize , ./configure y make (recién creado contra PHP 5.6 y Subversion 1.9.5) … mientras que el module Apache mod_dav (Subversion a través de HTTP / HTTPS) no es necesario para el control de versiones, sino un método opcional para acceder al repository.