future of HgKit
Andrey Somov
py4fun at gmail.com
Sun Oct 4 16:09:25 CDT 2009
Andrei Loskutov wrote:
> On Sun, 04 Oct 2009 19:00:05 +0200, <mercurial-request at selenic.com> wrote:
>
>> it's hard to believe, especially given how slow and bloated Eclipse
>> is, that the process startup time would be measurable
>
> It is, unfortunately.
> MercurialEclipse starts hg processes to integrate Eclipse with hg, and it
> IS slow in some cases where you have to run hg *many* times.
>
> Beside this, I have many issues with hg-to-IDE integration, and most of
> them are mostly because I have to install a right hg binaries version
> which matches both my current OS version and Eclipse plugin version, and
> this is not so easy...
>
>> If the experiment turns out to
>> be positive for JGit, and indeed people find that a native
>> implementation in Java really is that much better
>
> It IS better, at least for EGit. I think Git/JGit/EGit) will be in a short
> time much more interesting for Java developers then hg/MercurialEclipse,
> because it comes bundled with Eclipse and will run on ALL platforms
> without any extra binaries. I guess it will be the standard Eclipse VCS in
> the future.
>
> Unfortunately, this is not true for hg/MercurialEclipse.
>
> I can't run hg on Linux in the office, because I can't install new python
> version because I have no root rights and it is not allowed to change the
> developing environment in general (where a specific python version is a
> constraint).
> Same for Windows; the latest builds of hg are bundled with TortoiseHG, but
> I don't like to install this very invasive program on my machine, so I
> have to build hg from source (which I don't like to) or to wait until
> somebody releases the updated hg Windows binaries.
> Additionally, I can't fix a simplest bug in hg simply because I have no
> time to learn another one language for the sake of bug fixing.
>
>> if a daemon mode is developed for mercurial,
>> running it under jython becomes a valid
>> alternative.
>> the jython performace problems come from
>> the startup of the interpreter.
>> and with jython you can commmit too.
>
> I think this would be the best option ever.
> Make sure Jython can run "native" hg python code with no issues and
> provide a Java API on top of that.
> Then start a "deamon" Jython/hg thread in the same VM as Eclipse and use
> plain Java API to access hg data.
> No erroneous hg status caches, no parsing of specific output/error
> messages from the command line, a "native" Java Changeset class... Sounds
> like a dream ;-)
>
I am sorry I do not like to be a dream-breaker...
- it is unclear whether Jython will ever be able to run Mercurial
- Jython runs at least a few times slower the CPython
- currently Mercurial is heavily using C modules to improve performance,
since Jython has to stick to pure Python modules the performance
degradation will be even worse
- talking to a socket will allow to overcome the license restriction but
anyway developers have to install Jython with Mercurial (Eclipse
cannot include it as CVS or EGit)
I think using CPython through a socket may already improve the
situation. Anyway this is the first (and the only) step we can do.
More information about the Mercurial
mailing list