Andrew Myrick <amyrick@xxxxxxxxx> wrote: > Make memoization of the svn:mergeinfo processing functions persistent with > Memoize::Storable so that the memoization tables don't need to be regenerated > every time the user runs git-svn fetch. > > The Memoize::Storable hashes are stored in ENV{GIT_DIR}/svn/caches. Hi Andrew, Perhaps "$ENV{GIT_DIR}/svn/.caches" is better here since older versions of git svn used "$ENV{GIT_DIR}/svn/$refname" in the top-level and "caches" may conflict with existing repos. > -use File::Path qw/mkpath/; > +use File::Path qw/mkpath make_path/; File::Path::make_path is very recent not in Perls distributed by most vendors. My 5.10.0 installation (Debian stable) doesn't have it, and I also don't see a good reason to use it over the traditional mkpath. I think I'll squash the following patch and Ack. Let me know if you have any objections, thanks.! (also wraps long lines to 80 chars) diff --git a/git-svn.perl b/git-svn.perl index 0153439..265852f 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1652,7 +1652,7 @@ use vars qw/$default_repo_id $default_ref_id $_no_metadata $_follow_parent $_use_svnsync_props $no_reuse_existing $_minimize_url $_use_log_author $_add_author_from $_localtime/; use Carp qw/croak/; -use File::Path qw/mkpath make_path/; +use File::Path qw/mkpath/; use File::Copy qw/copy/; use IPC::Open3; use Memoize; # core since 5.8.0, Jul 2002 @@ -3126,25 +3126,25 @@ sub has_no_changes { return if $memoized; $memoized = 1; - my $cache_path = "$ENV{GIT_DIR}/svn/caches/"; - make_path($cache_path) unless -d $cache_path; + my $cache_path = "$ENV{GIT_DIR}/svn/.caches/"; + mkpath([$cache_path]) unless -d $cache_path; - tie my %lookup_svn_merge_cache => - 'Memoize::Storable',"$cache_path/lookup_svn_merge.db", 'nstore'; + tie my %lookup_svn_merge_cache => 'Memoize::Storable', + "$cache_path/lookup_svn_merge.db", 'nstore'; memoize 'lookup_svn_merge', SCALAR_CACHE => 'FAULT', LIST_CACHE => ['HASH' => \%lookup_svn_merge_cache], ; - tie my %check_cherry_pick_cache => - 'Memoize::Storable',"$cache_path/check_cherry_pick.db", 'nstore'; + tie my %check_cherry_pick_cache => 'Memoize::Storable', + "$cache_path/check_cherry_pick.db", 'nstore'; memoize 'check_cherry_pick', SCALAR_CACHE => 'FAULT', LIST_CACHE => ['HASH' => \%check_cherry_pick_cache], ; - tie my %has_no_changes_cache => - 'Memoize::Storable',"$cache_path/has_no_changes.db", 'nstore'; + tie my %has_no_changes_cache => 'Memoize::Storable', + "$cache_path/has_no_changes.db", 'nstore'; memoize 'has_no_changes', SCALAR_CACHE => ['HASH' => \%has_no_changes_cache], LIST_CACHE => 'FAULT', -- Eric Wong -- 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