From: Junio C Hamano Date: Tue, 29 Jan 2019 23:12:01 GMT Subject: Re: [PATCH (Apple Git) 11/13] Fix problem found from running the test suite. Message-ID: In-Reply-To: <20190129193818.8645-12-jeremyhu@apple.com> [jc: just forwarding to the area expert] Jeremy Huddleston Sequoia writes: > From: Matt Wright > > Signed-off-by: Matt Wright > --- > git-svn.perl | 30 ++++++++++++++++++++++++++++++ > 1 file changed, 30 insertions(+) > > diff --git a/git-svn.perl b/git-svn.perl > index 050f2a36f4..d29730be3b 100755 > --- a/git-svn.perl > +++ b/git-svn.perl > @@ -1815,6 +1815,36 @@ sub complete_url_ls_init { > > sub verify_ref { > my ($ref) = @_; > + > + if ($ref =~ /^(.*)\^0$/) { > + my $baseref = $1; > + my $p = "$ENV{GIT_DIR}/$baseref"; > + $p = "$ENV{GIT_DIR}/refs/remotes/$baseref" unless -e $p; > + $p = "$ENV{GIT_DIR}/refs/$baseref" unless -e $p; > + $p = "$ENV{GIT_DIR}/refs/heads/$baseref" unless -e $p; > + > + my $resolved = undef; > + if (-e $p) { > + open FH, $p; > + $resolved = ; > + chomp $resolved; > + close FH; > + } elsif (-e "$ENV{GIT_DIR}/packed-refs") { > + open FH, "$ENV{GIT_DIR}/packed-refs"; > + while () { > + if ($_ =~ /^([0-9a-fA-F]+) ((refs\/)?(remotes\/|heads\/|\/)?$baseref)$/) { > + $resolved = $1; > + last; > + } > + } > + } > + > + if (defined($resolved)) { > + return verify_ref("$1^0") if $resolved =~ /^ref: (.*)$/; > + return $resolved > + } > + } > + > eval { command_oneline([ 'rev-parse', '--verify', $ref ], > { STDERR => 0 }); }; > }