[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Unable to get any DIffs to work
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
--- 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;
}