Can you please generate this patch using 'svn diff' and then send that patch inline as you did this one? I tried to apply the patch below and failed:
ph...@harpua ~/dev/svn/modperl/mod_perl-2.0/Apache-Reload $ patch -p0 < ryan.diff patching file lib/Apache2/Reload.pm Hunk #2 FAILED at 86. Hunk #3 FAILED at 140. Hunk #4 FAILED at 161. Hunk #5 FAILED at 214. patch unexpectedly ends in middle of line Hunk #6 succeeded at 235 with fuzz 1. 4 out of 6 hunks FAILED -- saving rejects to file lib/Apache2/Reload.pm.rej On Thu, Jul 29, 2010 at 12:15 PM, Ryan Gies <r...@livesite.net> wrote: > On 07/29/2010 01:15 PM, Fred Moyer wrote: >> >> I just checked out that thread, not sure how I missed it last year. >> But if you could pull >> https://svn.apache.org/repos/asf/perl/Apache-Reload/trunk and update >> the patches I'd be happy to test them and integrate into this release. > > Below is the patch (inline as previously requested) as well as attached. > The patch file was created in the top (trunk) directory. > > --- lib/Apache2/Reload.pm 2010-07-29 14:38:16.187299747 -0400 > +++ lib/Apache2/Reload.pm.mine 2010-07-29 14:43:38.291778900 -0400 > @@ -20,7 +20,7 @@ > > use mod_perl2; > > -our $VERSION = '0.11'; > +our $VERSION = '0.12'; > > use Apache2::Const -compile => qw(OK); > > @@ -86,6 +86,8 @@ > > my $DEBUG = ref($o) && (lc($o->dir_config("ReloadDebug") || '') eq > 'on'); > > + my $ReloadByModuleName = ref($o) && > (lc($o->dir_config("ReloadByModuleName") || '') eq 'on'); > + > my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile"); > > my $ConstantRedefineWarnings = ref($o) && > @@ -138,6 +140,7 @@ > my $file = $Apache2::Reload::INCS{$key}; > > next unless defined $file; > + next if ref $file; > next if @watch_dirs && !grep { $file =~ /^$_/ } @watch_dirs; > warn "Apache2::Reload: Checking mtime of $key\n" if $DEBUG; > > @@ -158,24 +161,29 @@ > } > > if ($mtime > $Stat{$file}) { > - push @changed, $key; > + push @changed, [$key, $file]; > } > $Stat{$file} = $mtime; > } > > #First, let's unload all changed modules > - foreach my $module (@changed) { > + foreach my $change (@changed) { > + my ($module, $file) = @$change; > my $package = module_to_package($module); > ModPerl::Util::unload_package($package); > } > - > + > #Then, let's reload them all, so that module dependencies can satisfy > #themselves in the correct order. > - foreach my $module (@changed) { > - my $package = module_to_package($module); > - require $module; > - warn("Apache2::Reload: process $$ reloading $package from > $module\n") > - if $DEBUG; > + foreach my $change (@changed) { > + my ($module, $file) = @$change; > + my $name = $ReloadByModuleName ? $module : $file; > + require $name; > + if ($DEBUG) { > + my $package = module_to_package($module); > + warn sprintf("Apache2::Reload: process %d reloading %s from > %s\n", > + $$, $package, $name); > + } > } > > return Apache2::Const::OK; > @@ -206,6 +214,7 @@ > PerlSetVar ReloadAll Off > PerlSetVar ReloadModules "ModPerl::* Apache2::*" > #PerlSetVar ReloadDebug On > + #PerlSetVar ReloadByModuleName On > > # Reload a single module from within itself: > package My::Apache2::Module; > @@ -226,16 +235,28 @@ > also do the check for modified modules, when a special touch-file has > been modified. > > -Note that C<Apache2::Reload> operates on the current context of > -C<@INC>. Which means, when called as a C<Perl*Handler> it will not > -see C<@INC> paths added or removed by C<ModPerl::Registry> scripts, as > -the value of C<@INC> is saved on server startup and restored to that > -value after each request. In other words, if you want > -C<Apache2::Reload> to work with modules that live in custom C<@INC> > -paths, you should modify C<@INC> when the server is started. Besides, > -C<'use lib'> in the startup script, you can also set the C<PERL5LIB> > -variable in the httpd's environment to include any non-standard 'lib' > -directories that you choose. For example, to accomplish that you can > +Require-hooks, i.e., entries in %INC which are references, are ignored. > The > +hook should modify %INC itself, adding the path to the module file, for it > to > +be reloaded. > + > +C<Apache2::Reload> inspects and reloads the B<file> associated with a given > +module. Changes to @INC are not recognized, as it is the file which is > +being re-required, not the module name. > + > +In version 0.10 and earlier the B<module name>, not the file, is > re-required. > +Meaning it operated on the the current context of @INC. If you still want > this > +behavior set this environment variable in I<httpd.conf>: > + > + PerlSetVar ReloadByModuleName On > + > +This means, when called as a C<Perl*Handler>, C<Apache2::Reload> will not > see > +C<@INC> paths added or removed by C<ModPerl::Registry> scripts, as the > value of > +C<@INC> is saved on server startup and restored to that value after each > +request. In other words, if you want C<Apache2::Reload> to work with > modules > +that live in custom C<@INC> paths, you should modify C<@INC> when the > server is > +started. Besides, C<'use lib'> in the startup script, you can also set the > +C<PERL5LIB> variable in the httpd's environment to include any non-standard > +'lib' directories that you choose. For example, to accomplish that you can > include a line: > > PERL5LIB=/home/httpd/perl/extra; export PERL5LIB > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@perl.apache.org For additional commands, e-mail: dev-h...@perl.apache.org