git-svn metadata commands performance issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

In magit (http://magit.github.io/), a popular git frontend within
emacs, there is a git-svn frontend.  With a recent refactoring, it was
discovered that git-svn metadata commands (like "git-svn info") are
much slower than git ones:
git svn info: 130-150ms (after warmup): get the svn revision and url.
git svn rebase --dry-run: 150-170ms (after warmup): get the remote
branch.

Whereas in pure git:
git rev-parse --abbrev-ref HEAD@{upstream}: 2-3ms (after warmup): get
the remote branch
Other git commands alike take all less than 10ms after warmup.

This is an issue for the magit developers and users: just getting a
git-svn status with some metadata easily take ~500ms, which is really
slow for a UI. The equivalent UI with a pure git repository in magit
takes much less than 100ms to generate although more than 30 git
process are forked for it.

A previous version of magit-svn was much faster because it
re-implemented the logic of git-svn from perl to elisp (the
programming language in emacs), and to get the 3 previously mentioned
values it took less than 10ms.


What could be done about this?
Could git-svn performance be dramatically improved?
Even git svn --version takes ~100ms, is perl the bottleneck?
Or should each git-svn frontend developer re-implement the git-svn
metadata commands themselves for better performance?
Also, wouldn't it be better for those frontend developers if there
were some git-svn porcelain commands like git has? Fast, easy to parse
and stable input & output format?

For reference, here is the discussion about the performance issue on
magit-svn: https://github.com/magit/magit-svn/issues/1

And I'm using git-svn version 2.2.1 (svn 1.6.17) on an ubuntu 12.04
64bits Intel machine with an HDD (no SSD).

Thanks,
Thomas Riccardi
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]