ports/133877: Diff view of devel/p5-SVN-Web does not work with subversion 1.5.0
Will Bond
will at imarc.net
Mon Apr 20 16:10:06 UTC 2009
>Number: 133877
>Category: ports
>Synopsis: Diff view of devel/p5-SVN-Web does not work with subversion 1.5.0
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Apr 20 16:10:05 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Will Bond
>Release: 7.0-RELEASE
>Organization:
iMarc
>Environment:
FreeBSD internal.example.com 7.0-RELEASE FreeBSD 7.0-RELEASE #0: Sun Feb 24 19:59:52 UTC 2008 root at logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
>Description:
When trying to view the HTML or Text diff of a file via SVN::Web the page returns a 500 Internal Server Error. The apache error log includes:
svn: In file 'subversion/libsvn_ra/ra_loader.c' line 778
It looks like all of the rest of the SVN 1.5 changes were fixes in the last patch, but this one was missed. I found the difference by looking at the patch from http://rt.cpan.org/Public/Bug/Display.html?id=37388.
>How-To-Repeat:
Browse to an individual file in SVN::Web with more than one revision, click "View Revision Log" and then click either "HTML" or "TEXT" in the Diff column.
>Fix:
Patch attached with submission follows:
diff -Nuarb SVN-Web-0.53/lib/SVN/Web/Diff.pm SVN-Web-0.53/lib/SVN/Web/Diff.pm.new
--- SVN-Web-0.53/lib/SVN/Web/Diff.pm 2007-04-29 15:22:51.000000000 -0400
+++ SVN-Web-0.53/lib/SVN/Web/Diff.pm.new 2009-04-20 11:38:45.000000000 -0400
@@ -188,8 +188,11 @@
my $mime = $self->{cgi}->param('mime') || 'text/html';
- my %types = ( $rev1 => $ra->check_path($path, $rev1),
- $rev2 => $ra->check_path($path, $rev2) );
+ my $path_getlog = $path;
+ if ($path_getlog eq "/") {$path_getlog = "";}
+ $path_getlog =~ s/^\///;
+ my %types = ( $rev1 => $ra->check_path($path_getlog, $rev1),
+ $rev2 => $ra->check_path($path_getlog, $rev2) );
SVN::Web::X->throw(error => '(cannot diff nodes of different types: %1 %2 %3)',
vars => [$path, $rev1, $rev2])
@@ -299,7 +302,10 @@
my $ra = $self->{repos}{ra};
- if($ra->check_path($path, $rev) == $SVN::Node::none) {
+ my $path_getlog = $path;
+ if ($path_getlog eq "/") {$path_getlog = "";}
+ $path_getlog =~ s/^\///;
+ if($ra->check_path($path_getlog, $rev) == $SVN::Node::none) {
SVN::Web::X->throw(
error => '(path %1 does not exist in revision %2)',
vars => [$path, $rev],
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list