Attached is the beginning of a sync plugin for Trac.  I&#39;m trying to get out of the house and get to work at the moment, but I&#39;ll post a Trac URL for the project later this week.  For now, if anybody is interested in testing or working on it, here&#39;s a partially functioning start.<br>

<br>It requires trac4r and ditz, but nothing else.  It also assumes that you installed trac4r with rubygems.<br>
<br>Right now, it <b>only</b> does one-way syncing from Trac to Ditz.  Going the other direction won&#39;t be any more difficult; I just haven&#39;t gotten to it yet.<br><br>Usage: first, save attachment to wherever your ditz plugins live; eg, /usr/local/lib/site-ruby/1.8/ditz/plugins.  Then:<br>
<br><div style="margin-left: 40px;">
ditz reconfigure  # Only the first time  <br>ditz sync    # yeah, yeah... overlaps with the git plugin.  <br></div><br>The &#39;ditz reconfigure&#39; allows you to set the Trac URL of the project (without the login/xmlrpc stuff), and the uid and password for a user that has XMLRPC permissions in Trac<br>

<br>There are a <b>lot</b> of caveats to this:<br><ol><li>Work with a <b>clone</b> of your repository to start with.  I do not guarantee that this is bug-free.<br>
</li><li>Not everything between ditz and Trac map 1-1.  I had to make some assumptions about how to map statuses and dispositions -- most of these assumptions are in the mappings at the top of the plugin.  Suggestions about better mappings are welcome.<br>

</li><li>I&#39;m planning on extending the ditz Issues to include some of the information from Trac; in particular, the plugin matches issues by the Trac:summary / ditz:title, which is guaranteed to fail in not-to-unusual edge cases, so I&#39;m going to store the Trac ID in the ditz issue.</li>

<li>Related to the previous two points is that some Trac information isn&#39;t saved in ditz, such as priority or severity.  I&#39;ll add support for these, but some information -- such as attachments -- I probably won&#39;t. </li>

<li>Because of limitations in ditz&#39;s configuration system (specifically, there isn&#39;t per-repo configuration), you can only use this with a single project.  That is, the configuration is global, not per repo.  I may have to implement a plugin-specific configuration mechanism to fix this.</li>

<li>It is very verbose right now.  I need to add a --debug mode to reduce that.<br></li></ol>Oh, and the code is not particularly pretty, nor well documented.  OTOH, it isn&#39;t very complex, either.  However, it seems to work fairly well, although testing has so far been very limited.<br>

<br>Please, please, make sure that XMLRPC is working <b>outside</b> of this plugin before submitting issues about it.  And don&#39;t bother asking me about how to configure Trac to get XMLRPC working -- it was a pain in the ass for me to get it working on my site, and I&#39;m not eager to go through that again.  I&#39;m not even sure what I did that made it work, so I&#39;d probably just screw up your Trac configuration.<br>

<br>Feedback is welcome.  Assistance is welcome even more.<br><br>Cheers,<br><br>--- SER<br>