git/list[1] front-page[2] threads[3] people[4] search[5] about
 

git-svn metadata commands performance issue

From
NKNiluge kiwi <kiwiiii@gmail.com>
Date
Jan 13, 2015, 10:14 UTC
Message-ID
<CAKdxknyCQf6HpnTZ8BMVVpEX3vcVEoTo5BmpqrkgFuxV+k7wmw@mail.gmail.com>
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

Next: Eric Wong
Message 1 of 5 in “git-svn metadata commands performance issue”
  1. Niluge kiwiJan 13, 2015
  2. Eric WongJan 14, 2015
  3. git-svn: lazy load some modulesEric Wong, Jan 15, 2015
  4. Niluge kiwiJan 15, 2015
  5. David KastrupJan 15, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.