Enhancing TracMercurial plugin to use new server-command protocol
|Reported by:||Owned by:|
|Priority:||normal||Milestone:||plugin - mercurial|
|Severity:||normal||Keywords:||mercurial command server|
Description (last modified by )
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 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
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.