Search code examples
trac

Is it possible to integrate TFS 2010 with TRAC?


I work in a shop that's adopted TFS for source control. We're happy with the integration in VS and the other features it offers, so it's likely we're not going to switch to another platform. However, features for team collaboration and documentation are lacking compared to other solutions, most notably SVN + Trac.

Has someone been able to integrate TFS 2010 with TRAC?

EDIT: It's been asked that I clarify my intent here. It's very simple. I'm just asking if the TRAC project management and bug/tracking system can be used in conjunction with TFS. And, if so, what would it take?

Remember, I'm not looking for a Sharepoint solution--I've already got that. I'm asking if it's possible that TRAC and TFS can get along.

(Long rambling clarification on what I'm looking to get out of TRAC removed. The question is simply "Can TRAC work with TFS?")


Solution

  • Not so much of a trouble a the Trac side. There is FOSS everywhere, a lot of modularity and flexibility. No quite the same at the other side. I've read about the trouble even with one-time migration from SVN to TFS. Despite the source is all open and well documented, there no evidence of good support, that should tell you much about the chance for getting even more - constant synchronization.

    Facts: MS SQL server is the base for TFS. No connector available for MS SQL server as a Trac db backend, although there are several python bindings to MS SQL server available, or the option to connect via ODBC. But just an option, nothing ready AFAIK.

    I'm not aware of any well documented open TFS API as foundation for migration and integration. And I'm not convinced this will ever change. At Redmond (Microsoft) they are reportedly only considering what seems important to themselves: "helping customers with IBM Rational ClearCase and ClearQuest tools." And most probably it this behavior will persist and SVN/Trac keeps very low on the ToDo for them.

    [Edit2] While TFS has some support for bidirectional communication, these scenarios are not recommended. It mostly aims at integration, read: sucking information in, not communicating with other information systems like Trac.

    [Edit] Just for sub-task of repository browsing you could try to write code to push a duplicate of changes to another (SQLite|MySQL|PostgreSQL) repo that Trac supports right now. But I consider this is rather wasteful and ugly, and fact remains, that it's hard, if possible at all, to do the same tracking without such big code duplication. Ultimately, if you want to live without the actual check-in source changes you must at the very least send information about the meta-data like resource ID's (for link generation) to find the data in TFS.

    I'm looking into that right now. So take the following as half-educated advise to the best of my knowledge and feel free to correct/discuss.