id summary reporter owner description type status priority milestone component version severity resolution keywords cc branch changelog apichanges internalchanges 10411 Enhancing TracMercurial plugin to use new server-command protocol Joongi Kim "I suggest to use Mercurial's new command server protocol for the TracMercurial plugin. After recent releases of Mercurial such as 1.8 and 1.9, TracMercurial plugin did not work properly until several patches were delivered, mainly due to Mercurial's internal API changes. Now Mercurial 1.9 provides [http://mercurial-scm.org/wiki/CommandServer a stable command-server protocol]. It is a fairly simple protocol using pipes to send length + data streams, and features the same command set to that of the console command line. TracMercurial is for showing the timeline (prev/next and file list) and browsing the repository. It could be implemented using a few commands such as `log`, `tip`, `heads`, `tags`, `diff`, `status --change`, etc. If we combine this enhancement with a !CachedRepository implementation (ref #8417), the performance problem will be minized. I think this approach will significantly reduce the efforts for adapting to a new version of Mercurial, and make Trac users to escape from hassle of upgrading. " enhancement new normal plugin - mercurial plugin/mercurial 0.12dev normal mercurial command server