Posted by halkeye on June 26, 2006 at 4:44pm
Jump to:
| Project: | Subversion |
| Version: | master |
| Component: | Code |
| Category: | feature request |
| Priority: | normal |
| Assigned: | Unassigned |
| Status: | active |
Issue Summary
Currently I have the module setup for just exec() using the svn binaries.
Should also be expanded to use allow for http://pecl.php.net/package/svn if available.
Discussions / ideas / feedback should be done here.
Comments
#1
What exactly will this do? Allow for automatic creation of SVN modules? Please clarify.
#2
The svn.so module is a native PHP extension that uses the same libsvn0 library that the svn executable uses. It is only about 3/4 complete but it at least allows for repository creation which, otherwise, would require the exec() of svnadmin. In theory, using the svn.so module should be more efficient than using exec(), although Gavin has some doubts about that, and it could lead to simpler and better structured code. It also makes it significantly easier to use safe_mode and/or open_basedir (which I use). Unfortunately it is not complete enough to totally rely on at this stage so a dual "backend" system using either svn (exe) or svn.so, or a combination of both, is most likely needed. Assuming the module continues being developed, and using it in this project would help the cause (with feedback and patches to upstream), then the long term aim could be to totally rely on the module and only use exec() when the svn.so module fails to provide the required service.
I'm not aware of any real world PHP project using svn.so so it adds a burden on us to even think about using it. OTOH we are extremely lucky that this module exists at all at this stage of the subversion.modules development cycle. For the record, to install the svn.so PHP module on a Debian based system (I use Ubuntu Dapper) it goes something like...
apt-get install php-pear php5-dev libsvn0-devpecl install channel://pecl.php.net/svn-0.2
#3
what I Belive i said was that the svn.so drupal module that was created was slow..
a quick function_exists('svn_log') should be enough to detect the svn.so module (which atm, isn't setup in shared environments) then failing back to the exec setup, that would definalty be best.
What I want to do is finish all the parts of the module (diffing is next i think), and yea, pecls are dead simple to install.
#4
the diff function should be a good start for converting to allow svn.so..
the svn log is still tightly integrated, but i'm working on cleaning that up.