I just had a conversation with Manoj at the Scarab meeting about the
relationship between revision control and bug tracking. I'll
summarize a) pie-in-the-sky philosophy and b) practical
possibilities. None of this is for version 1.0, but would be worth
thinking about later on.
My opinion is that, although revision control and bug tracking are
historically separate, they really need to be tightly integrated.
1. A given bug should be defined, or in a particular state
(e.g. fixed or not, etc.), only with respect to a given branch
segment. If independent bugs are fixed on separate branches, and the
branches are merged in the revision control system, then the bug
tracking system should automatically know that both bugs are fixed in
the resulting merged revision. Ideally this would happen using a
mechanism like Subversion's for tracking which merges have already
2. The processes of checking in a revision and of reporting
that a bug or set of bugs has been fixed should be unified. If I fix
a bug and check in the fix with a comment explaining it, then that
should automatically mark the bug fixed in the bug tracking system,
with the same comment. A GUI client might even present a nice
interface for indicating which open bugs are affected by a given
In short, the bug tracking system needs to be a client of the
revision control system, in order to correctly track the status of
bugs on different revisions.
OK, so in the future we may have a unified app. What can we do today
to support this idea? I know that merging Subversion and Scarab is
not practical for a whole host of reasons. These possibilities
1. Give Subversion a database backend, and teach Subversion
and Scarab to read/modify each other's schemas.
2. Define a messaging protocol for revision control and bug
tracking systems to communicate with each other. When the revision
control server recieves a checkin, it can fire an event to the bug
tracking system to tell it who did what, which bug IDs were affected
(in this case the developer would have to provide these explicitly,
perhaps in a special comment), and the text of the comment. It could
also fire messages on tags, branch creations, and merges. The bug
tracking system would need to keep its own representation of the
branch structure for this to work.
3. Leave the servers completely separate, but write a clever
client that interacts with both of them. In fact, there could be a
client-side plugin for Subversion which interacts with Scarab (or
whatever). Doing it as a plugin would be particularly nice because
it would work with future Subversion clients.
David Soergel .oooO Oooo. "Music and Living----"
123 Forest View ( ) ( ) "The same thing," said Pooh.
Woodside, CA 94062 \ ( ) / email@example.com
(650) 303-5324 \_) (_/ http://www.lorax.org
Received on Sat Oct 21 14:36:05 2006