Opened 12 years ago
Last modified 4 years ago
#10411 new enhancement
Enhancing TracMercurial plugin to use new server-command protocol — at Initial Version
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | plugin - mercurial |
Component: | plugin/mercurial | Version: | 0.12dev |
Severity: | normal | Keywords: | mercurial command server |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
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 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 hazzle of upgrading.