Milk & cookies. Peanut butter & jelly. Wine & cheese. Bug tracking & version control.
OK, maybe that last one isn’t quite as delicious as the others, but it’s a natural pairing, too.

Two tools, two datasets

From the bug tracker, we get the “Why.” Why is a code change necessary?
In version control, you’ve got the “What.” What did you change to address the issue?
Putting these two things together gives you the full story, recorded for all time. Now, whenever you need it (release time, digging into another bug, whatever), being able to relate what changed to why it changed, and being able to actually jump back and forth between the two with just a few clicks, leads to better software, and more efficient software development.

Bringing the tools together

Two great tools for tracking the “why” and the “what” are Jira and Subversion. There are a couple of ways you can bring these tools together to get that full story.
One popular approach is to customise Subversion to make it “Jira Aware.” Jim Priest did just that, and blogged about it on This is is a great solution, as the Subversion tools and the IDE Jim’s using picked up on the customisation, and made it very easy for him to see the whole story from right inside Eclipse.
If you’d rather see the story from inside Jira, consider the JIRA-Subversion Plugin which extends Jira and makes it aware of your Subversion repository. Once installed, any time you reference a Jira ID in a Subversion commit message, you’ll get info about the Subversion commit added to the issue. Click the thumbnail to the right to see what this looks like inside Jira. The advantage here is that non-developers (like QA folks, for example) can see that complete story from their Web Browser.
And you can take it to the next level with Fisheye, which not only integrates Jira and Subversion together, it adds a whole host of reports and metrics to your Subversion repository, like advanced diffs, repository searching, and more.
How are you integrating your issues & code?

Telling the whole story