Unable to get any DIffs to work
Jonathan Noack
noackjr at alumni.rice.edu
Wed Jan 11 19:32:53 PST 2006
Rousell, Jeff wrote:
> I am unable to get any diff outputs to work with a new CVSWeb
> installation.
>
> I am NOT a newbie who is posting here without first trying to solve
> this myself.
>
> The installation works perfectly for browsing and doing annotation
> outputs but not for any diffs.
> rcsdiff and rlog ( 5.7) is installed and has been confirmed to work
> fine from the command line.
> I am not getting not getting any 500 errors nor server error log info
> about the problem.
>
> For the human readable diff I basically get a blank diff -- the page
> looks fine with all eth header and footer prettiness- but the actual
> "meat" of the page says:
> " - No viewable change - "
>
> If I try a unified or side-by-side I get something like below printed to
> the browser( no header or footer prettiness):
> /bin/diff: illegal option -- -
> usage: diff [-bitw] [-c | -e | -f | -h | -n] file1 file2
> diff [-bitw] [-C number] file1 file2
> diff [-bitw] [-D string] file1 file2
> diff [-bitw] [-c | -e | -f | -h | -n] [-l] [-r] [-s] [-S name]
> directory1 directory2
> rcsdiff: /web-content/cvsroot/SCM/bin/jadd: diff failed
> I am able to use rcsdiff from the command line just fine. And it
> appears as though cvsweb.cgi has the access to run rcsdiff and knows
> where it is etc...
>
> Is there a debug flag that I cna sue so that it prints out the full diff
> command that it is trying to perform so thhat I could verify that fomr
> teh command line?
Which OS? Which version of CVSweb? Can you post of a diff between
cvsweb.conf.dist and your cvsweb.conf?
Uncommenting '$DEBUG = 1;' in cvsweb.conf will cause STDERR to be sent
to your web server error log instead of /dev/null. However, for the
rcsdiff command STDERR is sent to STDOUT by default so you are already
seeing any errors in your web browser.
Attached is a patch for CVSweb 3.0.6 which will print out the rcsdiff
command used. It should print out at the top of the diff output.
One final note:
When testing from the command-line be sure to run the command as the web
server user (i.e., 'sudo -u www rcsdiff ...').
-Jonathan
-------------- next part --------------
--- cvsweb.cgi.old Wed Jan 11 22:12:42 2006
+++ cvsweb.cgi Wed Jan 11 22:16:09 2006
@@ -2336,6 +2336,8 @@
if (!open($fh, "-|")) { # child
open(STDERR, ">&STDOUT"); # Redirect stderr to stdout
openOutputFilter();
+ print(join(' ', $CMD{rcsdiff}, @rcsdiff_options, @difftype, "-r$rev1",
+ "-r$rev2", $fullname, "\n"));
exec($CMD{rcsdiff}, @rcsdiff_options, @difftype, "-r$rev1", "-r$rev2",
$fullname) or exit -1;
}
More information about the freebsd-cvsweb
mailing list