Replace perl code with pure shell code
Signed-off-by: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
a2f9fe92eb
commit
def2747d0e
67
git-clone.sh
67
git-clone.sh
@ -66,48 +66,6 @@ Perhaps git-update-server-info needs to be run there?"
|
||||
rm -f "$GIT_DIR/REMOTE_HEAD"
|
||||
}
|
||||
|
||||
# Read git-fetch-pack -k output and store the remote branches.
|
||||
copy_refs='
|
||||
use File::Path qw(mkpath);
|
||||
use File::Basename qw(dirname);
|
||||
my $git_dir = $ARGV[0];
|
||||
my $use_separate_remote = $ARGV[1];
|
||||
my $origin = $ARGV[2];
|
||||
|
||||
my $branch_top = ($use_separate_remote ? "remotes/$origin" : "heads");
|
||||
my $tag_top = "tags";
|
||||
|
||||
sub store {
|
||||
my ($sha1, $name, $top) = @_;
|
||||
$name = "$git_dir/refs/$top/$name";
|
||||
mkpath(dirname($name));
|
||||
open O, ">", "$name";
|
||||
print O "$sha1\n";
|
||||
close O;
|
||||
}
|
||||
|
||||
open FH, "<", "$git_dir/CLONE_HEAD";
|
||||
while (<FH>) {
|
||||
my ($sha1, $name) = /^([0-9a-f]{40})\s(.*)$/;
|
||||
next if ($name =~ /\^\173/);
|
||||
if ($name eq "HEAD") {
|
||||
open O, ">", "$git_dir/REMOTE_HEAD";
|
||||
print O "$sha1\n";
|
||||
close O;
|
||||
next;
|
||||
}
|
||||
if ($name =~ s/^refs\/heads\///) {
|
||||
store($sha1, $name, $branch_top);
|
||||
next;
|
||||
}
|
||||
if ($name =~ s/^refs\/tags\///) {
|
||||
store($sha1, $name, $tag_top);
|
||||
next;
|
||||
}
|
||||
}
|
||||
close FH;
|
||||
'
|
||||
|
||||
quiet=
|
||||
local=no
|
||||
use_local=no
|
||||
@ -332,8 +290,29 @@ test -d "$GIT_DIR/refs/reference-tmp" && rm -fr "$GIT_DIR/refs/reference-tmp"
|
||||
if test -f "$GIT_DIR/CLONE_HEAD"
|
||||
then
|
||||
# Read git-fetch-pack -k output and store the remote branches.
|
||||
@@PERL@@ -e "$copy_refs" "$GIT_DIR" "$use_separate_remote" "$origin" ||
|
||||
exit
|
||||
if [ -n "$use_separate_remote" ]
|
||||
then
|
||||
branch_top="remotes/$origin"
|
||||
else
|
||||
branch_top="heads"
|
||||
fi
|
||||
tag_top="tags"
|
||||
while read sha1 name
|
||||
do
|
||||
case "$name" in
|
||||
*'^{}')
|
||||
continue ;;
|
||||
HEAD)
|
||||
destname="REMOTE_HEAD" ;;
|
||||
refs/heads/*)
|
||||
destname="refs/$branch_top/${name#refs/heads/}" ;;
|
||||
refs/tags/*)
|
||||
destname="refs/$tag_top/${name#refs/tags/}" ;;
|
||||
*)
|
||||
continue ;;
|
||||
esac
|
||||
git-update-ref -m "clone: from $repo" "$destname" "$sha1" ""
|
||||
done < "$GIT_DIR/CLONE_HEAD"
|
||||
fi
|
||||
|
||||
cd "$D" || exit
|
||||
|
Loading…
Reference in New Issue
Block a user