BUG REPORT: The test cases for the Perl API SVN::Ra at http://svn.apache.org/repos/asf/subversion/trunk/subversion/bindings/swig/perl/native/t/6ra.t
currently lack tests for any of the functions needed to commit a change to the repository via the remote-access API layer. For starters, there are no tests for get_commit_editor, get_commit_editor2, get_commit_editor3. (The SVN::Ra man page even says that the author did not succeed in testing these functions ...) When I try to use e.g. get_commit_editor2 as suggested in the SVN::Ra man page, I just get an error message like TypeError in method 'svn_ra_get_commit_editor2', argument 5 of type 'svn_commit_callback2_t' A short example Perl script that reproduces this is attached below. Motivation: The remote-access layer API is very useful for applications (such as Web CGI editors) that want to commit changes without the overhead and disk-state involved with having to checkout a working directory first. Perl remains a popular CGI scripting language, which makes a well-tested, production-quality Perl SWIG binding for svn_ra.h highly desirable. See also: http://mail-archives.apache.org/mod_mbox/subversion-users/201007.mbox/browser Markus -- Markus Kuhn, Computer Laboratory, University of Cambridge http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain
#!/usr/bin/perl use SVN::Core; use SVN::Ra; use SVN::Delta; my $ra = SVN::Ra->new('http://svn.apache.org/repos/asf/subversion/'); my $path = 'trunk/BUGS'; open($fh, '>', \$text) || die; my ($revnum, $props) = $ra->get_file($path, $SVN::Core::INVALID_REVNUM, $fh); close $fh || die; print "Revision: $revnum\n\n$text\n"; my $logmsg = "test commit via the SVN:Ra Perl API"; sub commit_callback { my ($arg) = @_; use Data::Dumper; print STDERR "commit_callback(".Dumper($arg).")\n"; } my $editor = SVN::Delta::Editor->new( $ra->get_commit_editor2($logmsg, \&commit_callback, undef, {}, 0));