views:

1070

answers:

4

It's very painful to add multiple tickets to Trac or to have it as your own todo list. That causes people to use their own task management tools so tasks are then spread all around.

Is there any plugin or macro that would quicken the process of adding a ticket?

+5  A: 

If you're using Eclipse: Mylyn is perfect.

Otherwise you could always get the XML RPC plugin. http://trac-hacks.org/wiki/XmlRpcPlugin and roll your own little tool.

For quickly creating similar tickets, you could use the Clone plugin: http://trac-hacks.org/wiki/CloneTicketPlugin

Edit And I second Espen's idea with the SVN checkin hook, it works great for us, as well.

Epaga
+2  A: 

You could try using EmailtoTrack, so you can create tickets just by sending emails.

(Another neat track tip, if not directly related to your question, is to use a commit hook with your version control system so you can close tickets by doing commits. I've only tried this one for SVN, but it shouldn't be hard to port.)

Espen
A: 

If Mylyn is working for you, consider checking out http://tasktop.com too. Tasktop extends Mylyn with powerful productivity features such as automatic time tracking, web browsing support, email and calendar integration, and more.

wesleycoelho
+2  A: 

The following allows you to type a quick note. The note becomes a Trac ticket, assigned to yourself. I use this for very quick bugs and/or features I don't want to forget. Or, if I make up a feature I open then close a ticket for it, so I get full credit :) - j

#!/usr/bin/env python

'''
trac-bug: add bug/feature to current Trac project, from the command line.
Specify Trac project directory in TRAC_ENV environment variable.
'''


import os, sys

TRAC_ENV = os.environ.get('TRAC_ENV') or os.path.expanduser('~/trac/projectenv')
if not os.path.isdir(TRAC_ENV):
    print >>sys.stderr, "Set TRAC_ENV to the Trac project directory."
    sys.exit(2)

from trac.env import open_environment
from trac.ticket import Ticket
t = Ticket(open_environment(TRAC_ENV))

desc = ' '.join(sys.argv[1:])
info = dict(
    status='open', 
    owner=os.environ['USER'], reporter=os.environ['USER'],
    description = desc, summary=desc
)

t.populate(info)
num = t.insert()
if not num:
    print >>sys.stderr, "Ticket not created"
    print >>sys.stder, vals
    sys.exit(1)

print "Ticket #%d: %s" % (num,desc)
sys.exit(0)                 # all is well

Usage is brief:

$ trac-bug out of beer

Ticket #9: out of beer

shavenwarthog