From: Eric Wong Date: Wed, 25 Apr 2007 20:59:48 GMT Subject: Re: [PATCH] git-svn: Don't rely on $_ after making a function call Message-ID: <20070425205948.GA12375@untitled> In-Reply-To: <11775270321427-git-send-email-aroben@apple.com> Adam Roben wrote: > Many functions and operators in perl set $_, so its value cannot be relied upon > after calling arbitrary functions. The solution is simply to copy the value of > $_ into a local variable that will not get overwritten. Does this fix any particular bug? It looks right to me and makes the code easier to follow, so; Acked-by: Eric Wong > Signed-off-by: Adam Roben > --- > git-svn.perl | 10 +++++----- > 1 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/git-svn.perl b/git-svn.perl > index 077d6b3..90f3bc1 100755 > --- a/git-svn.perl > +++ b/git-svn.perl > @@ -771,19 +771,19 @@ sub cmt_metadata { > sub working_head_info { > my ($head, $refs) = @_; > my ($fh, $ctx) = command_output_pipe('rev-list', $head); > - while (<$fh>) { > - chomp; > - my ($url, $rev, $uuid) = cmt_metadata($_); > + while (my $hash = <$fh>) { > + chomp($hash); > + my ($url, $rev, $uuid) = cmt_metadata($hash); > if (defined $url && defined $rev) { > if (my $gs = Git::SVN->find_by_url($url)) { > my $c = $gs->rev_db_get($rev); > - if ($c && $c eq $_) { > + if ($c && $c eq $hash) { > close $fh; # break the pipe > return ($url, $rev, $uuid, $gs); > } > } > } > - unshift @$refs, $_ if $refs; > + unshift @$refs, $hash if $refs; > } > command_close_pipe($fh, $ctx); > (undef, undef, undef, undef); > -- > 1.5.2.rc0.14.g520d-dirty > -- Eric Wong