Code

git-svn: Cache results of running the executable "git config"
authorJames Y Knight <jknight@itasoftware.com>
Mon, 4 Apr 2011 19:09:08 +0000 (15:09 -0400)
committerEric Wong <normalperson@yhbt.net>
Sat, 9 Apr 2011 22:43:35 +0000 (22:43 +0000)
Running programs is not cheap!

Signed-off-by: James Y Knight <jknight@itasoftware.com>
Signed-off-by: Alejandro R. SedeƱo <asedeno@mit.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index e5a553f0078fb87d6aab01a5ece4ff2ab94a1c89..bf0451b46835357af7811096538e9e7d75311166 100755 (executable)
@@ -59,6 +59,7 @@ use File::Find;
 use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/;
 use IPC::Open3;
 use Git;
+use Memoize;  # core since 5.8.0, Jul 2002
 
 BEGIN {
        # import functions from Git into our packages, en masse
@@ -72,6 +73,8 @@ BEGIN {
                        *{"${package}::$_"} = \&{"Git::$_"};
                }
        }
+       Memoize::memoize 'Git::config';
+       Memoize::memoize 'Git::config_bool';
 }
 
 my ($SVN);
@@ -3210,6 +3213,8 @@ sub has_no_changes {
                Memoize::unmemoize 'check_cherry_pick';
                Memoize::unmemoize 'has_no_changes';
        }
+
+       Memoize::memoize 'Git::SVN::repos_root';
 }
 
 END {