====== Trac_and_SVN ======
====== Trac (interface to Subversion and integrated wiki) and SVN (subversion) ======
Trac is an enhanced wiki and issue tracking system for software development projects. It provides a Graphical front end to SVN where diffs in files can be obtained. It **cannot** update the SVN repository. It simply provides a Project Management interface, wiki, ticketing system, and SVN front end.
SVN is a free/open-source **Version Control System**. Subversion (SVN) manages files and directories over time. Files are placed into a central repository and every change every made to the files or directories are remembered.
If you are not familiar with SVN - then the following PDF document is a DEFINATE MUST: http://svnbook.red-bean.com/
===== Install SVN + Trac Software on Debian Sarge / SID =====
apt-get install apache2
apt-get install subversion
apt-get install libapache2-svn
apt-get install trac
===== Get SVN Working =====
mkdir /var/lib/svn
mkdir /var/lib/svn/projectname
svnadmin create /var/lib/svn/projectname --fs-type fsfs
chown -R www-data /var/lib/svn/projectname
chgrp -R www-data /var/lib/svn/projectname
In order to keep all SVN + apache2 configs together the following steps were carried out:
mkdir /etc/apache2/svn
vi /etc/apache2/apache2.conf
#Include Configs for Svn:
Include /etc/apache2/svn/[[^.#]]*
vi /etc/apache2/svn/projectname
DAV svn
SVNPath /var/lib/svn/projectname
AuthType Basic
AuthName "Subversion Repository - Projectname"
AuthUserFile /etc/apache2/svn/.htpasswd
Require valid-user
SSLRequireSSL
htpasswd2 -c .htpasswd username
SVN should be all working now. If you go to http://host/svn/projectname you should see all there.
===== Get TRAC Working =====
It is best if trac is installed into a User's home directory, e.g. /home/user
trac-admin /home/user/projectname initenv
//enter data for the title
//enter data for the sql-lite database (choose defaults)
//enter path to svn info ( /var/lib/svn/projectname )
//enter path to Trac template (choose default)
trac-admin /home/username/projectname/ permission add username MILESTONE_ADMIN REPORT_ADMIN ROADMAP_ADMIN TICKET_ADMIN TRAC_ADMIN
//should work fine.
chmod -R username:group /home/username/projectname
chgrp -R www-data /home/username/projectname/db
chmod -R 775 /home/username/projectname/db
mkdir -p /home/username/public_html/projectname
vi /home/username/public_html/projectname/.htaccess //not necessary, but useful for images/downloads etc.
vi /etc/apache2/svn/projectname //add the content below it the end.
ScriptAlias /~username/projectname /usr/share/trac/cgi-bin/trac.cgi
SetEnv TRAC_ENV "/home/username/projectname"
SSLRequireSSL
AuthType Basic
AuthName "Trac Login for Projectname Website"
AuthUserFile /etc/apache2/svn/.htpasswd
Require valid-user
=== Trac on Debian Lenny ===
* See: [[Upgrade_Trac]]
===== Delete a TRAC & SVN Account =====
Things to delete:
rm -R /var/lib/svn/projectname
rm /etc/apache2/svn/projectname
rm -R /home/username/projectname
rm -R /home/username/public_html/projectname //if exists
===== Add a TRAC & SVN Account =====
Sorry if this repetitive of above.
svnadmin create /var/lib/svn/projectname --fs-type fsfs
chown -R www-data:www-data /var/lib/svn/projectname
trac-admin /home/user/projectname initenv
trac-admin /home/username/projectname/ permission add username MILESTONE_ADMIN REPORT_ADMIN ROADMAP_ADMIN TICKET_ADMIN TRAC_ADMIN
chown -R username:group /home/username/projectname
chgrp -R www-data /home/username/projectname/db
chmod -R 775 /home/username/projectname/db
vi /etc/apache2/svn/projectname
DAV svn
SVNPath /var/lib/svn/projectname
AuthType Basic
AuthName "Subversion Repository - Projectname"
AuthUserFile /etc/apache2/svn/.htpasswd
Require valid-user
SSLRequireSSL
ScriptAlias /~username/projectname /usr/share/trac/cgi-bin/trac.cgi
SetEnv TRAC_ENV "/home/username/projectname"
SSLRequireSSL
AuthType Basic
AuthName "Trac Login for Projectname Website"
AuthUserFile /etc/apache2/svn/.htpasswd
Require valid-user
/etc/init.d/apache2 restart
===== Wipe a SVN repo and update Trac =====
If you want to wipe a svn repo - if it got corrupt or if something happened, AND you want to keep trac etc. you need to do the following:
rm /var/lib/svn/projectname
/var/lib/svn/projectname
//chown and reset permissions as covered previously
Trac then will give the following error: "The 'repository_dir' has changed, a 'trac-admin resync' operation is needed". Here is what to do:
trac-admin /home/username/projectname resync
Hope that works ok for you. Info: http://trac.edgewall.org/ticket/4204
===== Click here for [[Using Trac & Svn]] =====
====== Errors and Problems with Trac ======
After upgrading python2.3 to python2.4 (among other things) on the compsoc server, trac got itself broken. The errors I was getting were:
"file is encrypted or is not a database" and "clearsilver not installed etc."
1. Check that:
/usr/bin/python is symlinked to: python2.4
2. Check that sqlite is installed. It is quite possible that only sqlite3 is installed, hence giving the above problems.
3. This might solve some issues. If it doesnt:
cd /project/trac/db
cd /var/site/nara.ms/project/hoge/trac
mv trac.db trac2.db
sqlite trac2.db .dump | sqlite3 trac.db
trac-admin trac upgrade
trac-admin trac resync
More info on this error can be found at: http://hidelafoglia.livejournal.com/33118.html
----
Information Used:
http://www.debianhelp.co.uk/trac.htm
Skynet Configs.