Setup Trac on Windows

Using Bitnami Trac Stack + Subversion (SVN).

    1. Setup environment
      • Download Bitnami Track Stack (Windows installer) & install it
      • Add to PATH
        C:\Program Files\BitNami Trac Stack\python\Scripts
        C:\Program Files\BitNami Trac Stack\apache2\bin
    2. Create new project
      • Cmd
        $ trac-admin <trac env path> initenv
      • path: C:\Users\Username\Projects\Trac\newproject
    3. Configure SVN repo
      • Edit C:\Users\Username\Projects\Trac\newproject\conf\trac.ini
        repository_dir = <svn repo path>
      • path: C:\Users\Username\Projects\Repos\newproject (create using TortoiseSVN)
    4. Enable SVN module in Trac
        • Edit trac.ini

          [components]
          tracopt.versioncontrol.svn.svn_fs.subversionconnector=enabled
          acct_mgr.*=enabled
  • Edit logo image
    • Edit trac.ini
      [header_logo]
      src = site/logo.png
    • Place image in <trac env path>\htdocslogo.png
  • Enable syntax highlighting
    • Install pygments
      # easy_install pygments
    • Edit trac.ini
      [mimeviewer]
      pygments_default_style = default
  • Add admin permission
    • Cmd
      $ trac-admin /path/to/projenv permission add admin TRAC_ADMIN
    • /path/to/projectenv = c:\Users\Username\Projects\Trac\newproject
  • Add user
    • Cmd
      # htdigest -c htpasswd "Trac" username
    • -c = Create auth file (exclude when adding user)
      htpasswd = C:\Users\Username\BitNami Trac Stack\apps\trac\users\htpasswd
      “trac” = realm in http-dav-svn.conf below
  • Enable SVN repo hosting on Apache
    • Add in httpd.conf
      # svn repository
      Include conf/extra/http-dav-svn.conf
    • Create http-dav-svn.conf (copied from subversion.conf at http://noodlecode.net/2010/11/06/apache-svn-on-fedora/)
    • Edit:
      SVNParentPath C:\Users\Username\Projects\Repos
      AuthType Basic
    • AuthName & AuthUserFile follow values in c:\Program Files\BitNami Trac Stack\apps\trac\conf\trac.conf
      * bitnami trac by default is using basic auth

Trac can be accessed at http://localhost/trac. Checkout & commit to SVN repo at http://localhost/svn

Apache + SVN on Fedora

Create SVN repo, accessible from network, all users can read & checkout, certain users can write / commit

Software: Apache 2.2.11, Subversion 1.6.6, mod_dav_svn 1.6.6

File & folder:

/var/svn/
/var/svn/auth – authentication file
/var/svn/repos/ – project repositories

Install mod_dav_svn

yum install mod_dav_svn svn

Create SVN repo (refer previous post)

svnadmin create --fs-type fsfs /var/svn/repos/testproj

Create authentication file

htdigest [-c] <auth file> <realm> <username>
htdigest -c /var/svn/auth "Project Repository" user1

c – create file (exclude this flag when adding users)

Setup Apache + mod_dav_svn

vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>
  DAV svn
  SVNParentPath /var/svn/repos
  SVNListParentPath On
  AuthType Digest
  AuthName "Project Repository"
  AuthUserFile /var/svn/auth
  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept>
</Location>

Change ownership of the whole svn repo dir

chown -R apache.apache /var/svn

Note: Re-assign the ownership everytime you create a new repo

Lastly, reload apache

service httpd reload

View list of projects – http://localhost/svn
View contents of particular (myproj) project – http://localhost/svn/myproj

Subversion on thumbdrive

This post shows how to create a Subversion (SVN) repo on a thumbdrive. I don’t know what’s the minimum capacity of thumbdrive should be used, but 2GB seems enough (mine’s 8GB)

Software to use: RabbitVCS

There are 3 parts, download all parts (Core, Nautilus & GEdit plugin), and install them

  • Select all 3 packages, right click > Open with Package Installer
    screenshot-1a

Assumptions:

  • the repo folder on thumbdrive is referred as /media/thumbdrive/project_repo
  • project folder is ~/project/my_project (folder contains your work)

Create new repository:

  1. Create a folder (for repo) on thumbdrive (/media/thumbdrive/project_repo)
  2. Go inside that folder, right click > RabbitVCS > Create repository here
    screenshot-1
  3. Create temporary folder (~/tmp) and create repo layout inside:
    • ~/tmp/trunk
    • ~/tmp/branches
    • ~/tmp/tags
  4. Import repo layout into repo inside the thumbdrive:
    • Select ~/tmp > right click > RabbitVCS > Import
    • Repository: file:///media/thumbdrive/project_repo
    • enter import message, and OK
      screenshot-21
  5. Import project folder into repo inside the thumbdrive:
    • Select ~/project/my_project, right click > RabbitVCS > Import
    • Repository: file:///media/thumbdrive/project_repo/trunk
    • enter message, and OK

Check out repo into another computer

Assuming this another computer running Windows, it should have TortoiseSVN installed.
Note: c:usersusername is referred as ~ in this post, repo folder in thumbdrive is e:project_repo

  1. Go to project folder (folder which your keep all your project files, e.g. ~projects)
  2. Right click > SVN Checkout
    svn-checkout-1
  3. URL of repository: file:///E:/project_repo/trunk
  4. Checkout directory – make sure it is ~projects, then OK
    svn-checkout