git-svn: lazy load some modules
commit47092c10671da906ae626634dc83beb29ce76a9d
authorEric Wong <normalperson@yhbt.net>
Thu, 15 Jan 2015 08:54:22 +0000 (15 08:54 +0000)
committerEric Wong <normalperson@yhbt.net>
Thu, 26 Feb 2015 20:19:21 +0000 (26 20:19 +0000)
tree27980d2dafd0c5e3d7d14c7bd419e8cb8c099ef7
parent7f4ba4b6e3ba7075ca6b379ba23fd3088cbe69a8
git-svn: lazy load some modules

We can delay loading some modules until we need them for uncommon
code paths.  For example, persistent memoization is not often
needed, so we can avoid loading the modules for it until we
encounter svn::mergeinfo during fetch.

This gives a tiny reduction in syscalls (from 15641 to 15305) when
running "git svn info" and counting via "strace -fc".  Further,
more invasive work will be needed to noticeably improve performance.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl
perl/Git/SVN.pm
perl/Git/SVN/Editor.pm
perl/Git/SVN/Fetcher.pm
perl/Git/SVN/Ra.pm