If you have a new question, enter it on this page and leave the
*Answer:* section blank. Someone will eventually add text that
provides an answer. At least, that's the theory...
----
*Question:*
*Page Not Found: /index*
I can't run a shell script on my host, but I can run a perl script, which looks like this:
#!/usr/bin/perl -w
use strict;
my $cmd = "/home1/harleypig/bin/cvstrac cgi /home1/harleypig/cvstrac";
exec( $cmd );
(essentially the same but I wanted to included it in case there was a difference)
I'm getting redirected to '/index'. If I add logging functionality to the script I can see that the cvstrac is
the one doing the redirecting.
Is this expected? If so, how come I'm getting the page not found error? I can create a subdirectory, but
then I just get an index listing of the directory.
I've asked my host for help, and the only thing they've suggested is to adapt cvstrac to use fcgi_stdio.h
but I'm not sure how to go about doing that. I've been programming in perl for years, but only dabbled
in C/C++ a little.
Any suggestions would be really great.
*Answer:*
Here's what I added to _httpd.conf_ in my Apache 1.3.28 installation to make it work:
LoadModule cgi_module libexec/apache/mod_cgi.so
DirectoryIndex index.html index.cgi
DocumentRoot /usr/local/web/cvstrac
AddHandler cgi-script .cgi
Alias / "/usr/local/web/cvstrac/index/"
Options Indexes FollowSymLinks MultiViews ExecCGI
I then made an _index.cgi_ file and placed it in _/usr/local/web/cvstrac_:
#!/bin/sh
/usr/local/bin/cvstrac cgi /usr/local/web/cvstrac myproject
This seems to work quite well.
{linebreak} _{link: mirian@cosmic.com}_
{linebreak} _5th February 2004_
*Answer 2*
I had the same problem - and what's missing here is that PATH_INFO is missing a /index at the end. For
instance, if the request is being made to: http://myserver.com/cgi-bin/cvstrac.cgi/myproject - that will
cause a redirect to /index, however if you change the original request to http://myserver.com/cgi-bin/
cvstrac.cgi/myproject/index - that will work properly.
I'm still trying to figure out why my apache was appending an index earlier, and then stopped working
all of a sudden.
----
*Question:*
*Can cvstrac use a pserver ?*
How do I get cvstrac (standalone version) to use a pserver on a different computer ? It works perfectly
with a local cvs repository, but I've not been able to get it to access a cvs repository running on a
different computer and accessed via pserver.
I have logged in as the cvstrac user ('cvs') and logged in to the remote repository so that the password
will be stored in .cvspass in the home directory. Still no luck.
This is such a useful program. If only it would work with remote repositories...
A related Ticket: #216: Cannot access repository via :pserver:
23rd Sept 2003
*Answer:*
Not really. CVSTrac needs to read files (like 'history') which are not easily accessible through a pserver
connection. A possible solution for you might be to mirror the repository locally (through rsync or
cvsup), and set up your local CVSTrac to talk to the local repository.
Another solution:
CVSTRAC doesn't work over non-mounted filesystems. But you can mount remote filesystems over ssh/
ftp in linux using lufs. Look on sourceforge. Only problem I has was that I had to give a --libdir=/lib
parameter to ./configure to make it fit redhat's library path.
./configure --libdir=/lib && make && make install worked most perfectly.
Yet another solution:
See my hack at http://burstproject.org/cvstrac_hack/
which is a start at supporting remote repositories.
----
*Question:*
I've compiled and installed cvstrac 1.1.2 on RedHat 7.3 as a cgi install with Apache, and am getting
to the point where I enter in my 'setup' username and password at:
http://www.mydomain.com/cgi-bin/cvstrac/myproject/
when I do this, I get this:
Query failed
Database query failed:
BEGIN;DELETE FROM cookie WHERE expires<=%d;INSERT INTO cookie
(cookie,user,expires,ipaddr,agent) VALUES('%q','%q',%d,'%q','%q');COMMIT;
Reason: attempt to write a readonly database
when I update the file permissions on the db file (in my case located at /home/cvsroot/
myproject.db) so that they are world-readable/writable, the last line of the error changes to:
Reason: unable to open database file
Any suggestions? Seems like a problem with permissions between the webserver and sqlite? Any
pointers on how to proceed would be appreciated.
*Answer:*
Apache usually runs your CGI scripts as an unprivileged user.
("www" or "apache" or "nobody"). You have to make sure that both
the database file itself and the directory that contains the database
file are writable by whatever user the CGI script runs as.
----
*Question:*
I compiled and installed CVStrac 1.1.2 on FreeBSD4.3.
I initialized cvs with:
cvstrac init /home/cvs demo
and started cvstrac as its own webserver:
cvstrac server 8008 /home/cvs
When I activate CVStrac from the browser with URL:
http://ptscvs.proeftuin.pts.nl:8008/demo
I get the CVStrac login page on which I only see the "user id" and "pwd" select boxes and "login"
button. Furthermore there is a "CVSTrac version 1.1.2" hyperlink which prompts with the "about"
page.
Although this seems all okay, I have the idea that I'm missing hyperlinks
in the page header. Furthermore I have no idea how to configure CVStrac with
CVS users and where CVStrac finds the CVS repository.
Does it use environment variable $CVSROOT or expects it having directory CVSROOT located
somewhere in /home/cvs?
*Answer:* Read and follow the CvstracInstallation instructions.
----
*Question:*
cvstrac is well installed and running on my Debian GNU/Linux Sparc. Cvstrac is running as a
standalone server. When I log with setup/setup all seems correct but I come back to the login
screen ? with a wrong password there is an error. On the client side, cookies are enabled by
default. How can I debug this type of issue ? Is there a verbose mode from 'cvstrac server' ?
*Answer:*
See ticket #166 and #205
----
*Question:*
Is there a way to display last updated date on any wiki page? I'm trying to use
this within my organisation, and although the concept is being welcomed, yet
its pretty tedious to go thru all the wiki pages and manually check for any
modifications on that page. Any pointers will be appreciated.
*Answer:*
You can generate a report that shows the time of last modification for
all wiki pages.
See the example at http://cvs.cvstrac.org/rptview?rn=17.
You can also get a summary of all wiki pages changes by selecting
appropriate configuration on the timeline.
Or you can see a history of changes for a particular wiki pages by
clicking on the "[History]" hyperlink in the upper right-hand corner
when viewing that page.
----
*Question:*
Can CVSTrac be run in a chroot jail?
*Answer:*
See ChrootJailForCvstrac.
----
*Question:*
I don't want CVSTrac to change my CVSROOT/passwd file. How do I keep it
from changing that file when I add new users to CVSTrac?
*Answer:*
CVSTrac will not change the CVSROOT/passwd file if you turn off
write permission on that file. You can also configure CVSTrac not to
write to CVSROOT/passwd in one of the setup screens.
----
*Question:*
I have multiple projects in the same CVS repository. How can I set
of separate CVSTrac instances for each project?
*Answer:*
You can configure CVSTrac so that it only sees CVS files that have
a particular prefix. If each project has a unique prefix, you can
set up multiple CVSTrac servers, one for each project.
----
*Question:* I want my tickets to start at #0. How can I achieve it?
*Answer:* You can't. Tickets start with #1. There is no way to change this.
----
*Question:* How and when should the database update be done? Automatically
after every checkin or with a cron job (at what interval?) ?
*Answer:* The database is updated automatically from the CVSROOT/history file
whenever anyone accesses the timeline page. The last known size of
CVSROOT/history is saved (in the CONFIG table of the database)
and if the current size is larger, the excess
is scanned and entered as new records in the change log. All of this should
occur automatically and without any intervention on the part of either
the user or the administrator.
----
*Question:* How does CVSTrac work from the cvs checkin perspective? Are users
required to add certain text to checkin comments in order for tickets to be
related to checkins?
*Answer:* If the user includes a ticket number preceeded by a "#" somewhere
in the check-in comment, then CVSTrac will automatically associate that ticket
with the check-in. But this association can be broken, or new asssocations
added, by editing the ticket and changing the list of check-in numbers in
the "Associated Check-ins:" entry box.
----
*Question:* How can I get 1.1.1-SNAP via CVS?
*Answer:* There was a configuration problem on the CVSTrac website that
prevent access to the lastest CVS changes. But that problem has now been
fixed. To download the latest changes to CVS, do this:
cvs -d :pserver:anonymous@cvs.cvstrac.org:/cvstrac login
cvs -d :pserver:anonymous@cvs.cvstrac.org:/cvstrac checkout cvstrac
The password is "anonymous".
----
*Question:*
How do I use Milestones? So far I have defined a milestone,
and I have associated tickets with it by entering the milestone's
checkin number in the "associated checkins" field of the ticket.
But ... how is this useful?
Maybe somebody could enlighten me on how Milestones are supposed to
be used?
*Answer:*
If you change the type of the Milestone from "Event" to "Release", then
a pink box appears on the timeline at the point of that milestone.
This is useful for delimiting significant events in the history of a
project (such as releases). Note that you have to check the "Divide
Timeline by Milestones" box at the bottom of the timeline page for this
to happen.
Event milestones are automatically created for each tag that you insert
using the normal CVS tag commands. This is just to give visibility to
tags. Note that only the CVS 'rtag' command generates milestones!
----
*Question:*
We have added an estimated effort field. Neat. We have created a report that
shows 'total estimated effort', 'completed effort' and 'pending effort'. Also
neat.
We'd like to be able to keep track of the evolution of these values. Any ideas
to help us to track them are welcomed. (Not CVSTrac related, but would also
like to hear some ideas about how to plot the evolution of the estimated
effort).
*Answer:*
#205 seems related. This issue is quite strange and variable following browser. Some specific
version of mozilla can't handle that.
----
*Question:*
Has anyone thought about porting CVSTrac to use Subversion (http://subversion.tigris.org/) as the
back-end? (SvnTrac?)
*Answer:* Have a look at http://svntrac.bengburken.net/, maybe this is what you are looking for?
----
*Question:* Whatever I try (on a cgi install) of cvstrac, I am unable to
"browse" the repository. I have no special xinetd or inetd settings.. am I in
some sort of chroot jail? All other functions seem to work.. just not "browse
the code". I have tried setting the directory to many different things (in
setup). I can't for the life of me figure out what I'm missing.
*Answer:* CVSTrac only sees files that have been "commit"-ed at least once.
CVSTrac only knows about files that appear in the CVSROOT/history
log. The "cvs import" command does not make entries in this log. Only the
"cvs commit" command does.
Hence you can only see files that have been processed by "cvs commit", not just "cvs import". Did you
fill your repository with "import" and thus avoid doing any commits?
Another possibility is that the user that CGI scripts run as does not have
read permission for the CVS files.
----
*Question:* So how can I make those files be browseable? I don't want to have to edit them just so
they'll appear in Browse.
*Answer:* If you don't mind adding a change log entry for every file, one solution is to run the
following command at the top-level directory of your source tree:
cvs commit -f -R -m "imported into cvstrac"
This will recursively force an empty commit for every CVS-controlled file in the project.
{linebreak} _{link: mirian@cosmic.com}_
----
*Question:*
I've setup cvstrac on my system. Everything seems to work fine except the browse function. Everytime
I have cvstrac read the history file I get errors that look like this:
Unable to locate the file module/filename in the CVS repository
I've commited the files, the program is running as root so there isn't any file perm problems. I haven't
changed the CVSROOT files in any way.
*Answer:*
----
*Question:* I receive lots of "The file x could not be found" errors when I run reconstruct from the
CVS history file. What could be wrong?
*Answer:* If you have done any manual surgery on your CVS repository, such as moving ,v files in
the repository, this change will not be reflected in the CVS history file. So check the filenames
carefully, as these errors will likely refer to files which no longer exist in that exact location. It is
likely that your import was still successful.
----
*Question:* I use cvstrac as stand-alone server where I have no root access. Is there an easy way to
run cvstrac over SSL/HTTPS?
*Answer:* You can use stunnel (http://www.stunnel.org) for this.
----
*Question:* If I run cvstrac using stunnel via port 443, can I also run a second instance against the
same database file without stunnel via port 80? In other words, can a database file be shared
safely amongst several instances of cvstrac?
*Answer:* Yes. Multiple copies of cvstrac can be active at once.
----
*Question:* How do I get cvstrac to display time/date information in my own timezone instead of
in GMT?
*Answer:* This is probably an indication that you have not set up your chroot jail correctly. See
ChrootJailForCvstrac and LocalizationOfCvstrac for information on how to set up your chroot jail
with /etc/localtime.
----
*Question:* I have just installed CVSTrac on OSX and started it up as its own web server. The login
page comes up but when i enter "setup" and "setup" for the username and password i am just
presented with the login page again. With different values for username and password I do get the
red "You entered an incorrect username and/or password" error. Have i missed something in my
setup?
*Answer:* Check if cookies are enabled. You must allow your web browser to use cookies.
----
*Question:* The ChrootJailForCvstrac Wiki provides instructions for Linux. I followed these for
FreeBSD 4.x but they didn't work. What do I need to do confine CVSTrac to a FreeBSD jail?
*Answer*: You need to include the following directories and files in your chroot jail.
bin
bin/sh
dev
dev/null
etc
etc/passwd
etc/localtime
tmp
usr
usr/bin
usr/bin/co
usr/bin/diff
usr/bin/rcsdiff
usr/bin/rlog
usr/lib
usr/lib/libc.so.4
usr/lib/libgnuregex.so.2
usr/lib/libm.so.2
usr/libexec
usr/libexec/ld-elf.so.1
On FreeBSD 4.x, the /dev/null device is defined as a character device with a major number of 2
and a minor number of 2 in the /dev/MAKEDEV file. So to create the /dev/null device in your
chroot jail, use the following commands:
mknod c 2 2 dev/null
chmod 666 dev/null
----
*Question:* I have setup a chroot jail for CVSTrac, but I receive an error (e.g. Abort trap)
whenever CVSTrac attempts to access a given revision of a CVS file. How can I troubleshoot the
problem?
*Answer:* This is most likely due to a missing library. The best way to diagnose this problem is
to confine an interactive session to the CVSTrac chroot jail and see if the dependent commands
work. For example, if you confine CVSTrac to a chroot jail at /usr/CVSTracJail as user id cvs, you
would do the following under an interactive session:
su
chroot /usr/CVSTracJail /bin/sh
su -l cvs
Now your interactive process is confined to the CVSTrac jail running as user cvs. Executing the
commands (e.g. co, diff, rcsdiff and rlog) that CVSTrac requires will provide insight into what might
be wrong such as a missing library.
----
*Question:*
I've managed to set up the cvstrac cgi on Mac OS X running Apache 1.3.27. In the setup page I
pointed it to my existing CVS by entering the path of the CVS. I clicked Reconstruct, and none of
my projects appeared. I tried again, clicking Rescan this time.
cvstrac managed to find one project, plus one other one that I deleted manually(and I also
removed it's entry in the modules file)a long time ago. I do have other entries in the modules file,
but those projects don't appear. Any ideas?
Michael
*Answer*
----
*Question:*
Could someone show a valid command to use in the "Configure Ticket Change Notification" that doesn't
compromise the security of the box in any way ?
I would assume one would use sendmail or mail, but I've used neither.
James
*Answer:*
I use:
echo '%d %r'|mail -s '[cvstrac] %p/%s/%t' '%A'
----
*Question:*
Why is there a limit of 100K on attached files? Can I upgrade that to 100MB and recompile (I know
where the constant is, I'm just curious why you picked such a small number; it seems like it could be
important)?
*Answer:*
Well, you can set the limit in the setup screen. At least did I see that option in the version I tried.
----
*Question:*
I have a local machine I want to run cvstrac on. The cvs server is ssh accessable on another machine on
which I cannot install cvstrac. I have my ssh-agent keys (.ssh/id_rsa,.ssh/authorized_keys) arranged so
I can type ssh -l username cvsserver and no password is required for access. However the browse
functionality of cvstrac does not work using the exact same CVSROOT. Any ideas what I'm missing
here?
*Answer:*
CVSTRAC doesn't work over non-mounted filesystems. But you can mount remote filesystems over ssh/
ftp in linux using lufs. Look on sourceforge. Only problem I has was that I had to give a --libdir=/lib
parameter to ./configure to make it fit redhat's library path.
./configure --libdir=/lib && make && make install worked most perfectly.
----
*Question:*
How does cvstrac handle multiple branches in the cvs repository? Can tickets be associated with a
single branch? Can they be associated with multiple branches?
AJ
*Answer:*
----
*Question:*
Is it possible to configure CVSTrac to exclude files that have been removed from CVS from the browse
view?
J
*Answer:*
----
*Question:*
Can I somehow use WikiWords _within_ a Wiki page? I'd like to keep multiple tips&tricks notes (each of
them being very short) on one page while still being able to see/link them from other pages. I don't
want to have lots of pages with only 2 or 3 sentences per page ;-)
*Answer:*
You could just insert HTML rather than using Wiki.
----
*Question:*
On the timeline page, you can click "Show the SQL used to generate the timeline." What can you do
with this SQL? Is there any way to execute arbitrary SQL commands against the CVSTrac database? I
would like command-line access to the timeline to build changelogs and whatnot into my program.
*Answer:*
You can access it via SQLite mechanisms, for example the sqlite command-line client. Also, you can
enter arbitrary SQL statements into the report editor; I've used this to make reports based on the
timeline by copying that SQL into the timeline and modifying it to use the range or whatever that I want.
The output isn't formatted as nicely as the timeline, but it works.
----
*Question:*
On the the sqlite cvstrac page (http://www.sqlite.org/cvstrac/tktedit?tn=508,2), it says you can have
html text in the wiki. On other wiki description pages, including for this site, using < html>< /html>
seems to have no effect. Is there a special flag/version you need to use this functionality? Both seem
to be running 1.1.2.
*Answer:*
Using HTML is possible since 2003-Nov-02 [292], ie. using the CVS version. The
"documentation" is in a comment in that patch:
Text between ... is interpreted as HTML. A restricted
subset of tags are supported - things like forms and javascript are
intentionally excluded. The initial must occur at the
beginning of a paragraph.
(spaces added to avoid interpretation of the html tag in this case)
----
*Question:*
Since the leap day of Sunday the 29th of February, 2004 all of my CVS commits are shown as having
occured on the wrong date by CVSTrac. If I were to make a commit at 14:00 on the 30th of March
CVSTrac thinks that the commit occured at 14:00 on the 29th of March. It appears as though the date
in table chng (time in seconds since 1970) has had 24 hours subtracted off. The date in my CVS Log
Files are correct.
I have had a look at the source and I think that the fault is in the function "static time_t
mkgmtime(struct tm *p){" which is in the "history.c" file. I am not very good at programing though so I
can't fix it.
Has anybody else noticed this? Is there a fix on the way?
*Answer:* See #290
----
*Question:*
I have installed CVStrac on redhat 9.0 but I could not see any projects using browse and I did have
commited my project, and the history file has my commit info. but I just could not see any thing with
browser.
Has anybody else noticed this?
*Answer:* Had the same problem. Turned out to be permission problems. Was running cvstrac (suid to root) as a cgi, but didn't have suEXEC configured on apache, so cvstrac ran as apache. Finally ended up running cvstrac in server mode as my cvs user. Much easier and faster.
----
*Question:*
We are using Chora right now, but the integrated ticket management and Wiki stuff in cvstrac is great
(plus it's easier to set up).
What I *love* about Chora, though, is the ability to have it visually markup source code when browsing,
and it produces nice colored diffs if you like it to do so.
Did anybody come up with a solution for this already?
*Answer:*
On the setup screen one can enter commands for source and diff display. One just needs to add
commands that generate HTML from the source.
An example for PHP would be
co -q -p%V '%F' | php4 -s
for the 'single version diff' command.
If one writes a wrapper script that extracts the filename ending, it should be possible to use a general
purpose tool like highlight. We need to pass the file name ending like so
highlight -l -I -S php
to tell the type (stdin has no filename...). This gives us line number and nice highlighting of over 65
languages.
_But_ it still deals with what _should_ be diff output (chngview). Clicking on a version number still gives
plain text (getfile). So if we could pass getfile output through a filter, that would be great (see ticket
#170)!
----
*Question:*
I installed cvstrac on HP-UX using the webserver mode. I thought this would be the best method, since the cvs users have very little permissions on the server. We are running Windows boxes and connecting to the server via Putty.
The command below sets up the webpage:
cvstrac server 15001 /app/cvs/sandbox sandbox
The problem is, when I close my putty session, we lose the site.
What is the best way to have cvstrac remain active?
Does it need to go in a startup script (/sbin/init.d on HP-UX)?
*Answer:*