Hello all,

I use magit to interact with github.com/mozilla/mozilla-central, a fairly 
large repository, and it is a poor experience.  My beefy laptop with an SSD 
regularly janks for 10-30 seconds on synchronous git invocations.  I would 
like to improve the magit experience.

I have several patches under development to make magit performant, and I 
would love testers and reviewers.  For example, [1] speeds up 
branch-guessing significantly for me.  I also have patches in the works to

* add a mode-line indicator during refresh;
* cache some frequent git invocations;
* make displaying tree-graph output in logs an option (this is very slow on 
large repositories);
* log git invocations, outputs, and record running times (so that we can 
profile magit more effectively);
* make sections not be refreshed automatically.

These almost make magit useable with mozilla-central.  If you're interested 
in any of these approaches, or have other requests or ideas for making 
magit speedier, please let me know [2].

Yours,
Nick Alexander

[1] https://github.com/magit/magit/pull/636 

[2] A few things I think are not feasible:

It appears to me that magit essentially does not cache.  This is most 
evident in `magit-refresh-buffer', which tears down all sections and 
synchronously invokes git to repopulate everything.  (There is a small sop 
to maintaining `needs-refresh' state for diffs.)  I was surprised, at 
first, but this seems like an excellent decision: git can cache better than 
magit can, and this makes running magit in multiple repositories 
transparent.

magit does not do much refresh work asynchronously.  Changing refresh to 
invoke git asynchronously would be a significant reworking of the section 
internals, to my eye, so I would not propose such changes.

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"magit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to