mirror of
git://code.qt.io/qt/qt5.git
synced 2026-05-10 04:58:08 +08:00
Support absolute submodule urls
This is needed for qttools. Fixes: QTBUG-93850 Change-Id: I59a7f8a56d8d7143521b67d0c385150e62338209 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
@@ -301,6 +301,12 @@ use constant {
|
|||||||
STS_ADDITIONAL => 6
|
STS_ADDITIONAL => 6
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sub has_url_scheme
|
||||||
|
{
|
||||||
|
my ($url) = @_;
|
||||||
|
return $url =~ "^[a-z][a-z0-9+\-.]*://";
|
||||||
|
}
|
||||||
|
|
||||||
sub git_clone_all_submodules
|
sub git_clone_all_submodules
|
||||||
{
|
{
|
||||||
my ($self, $my_repo_base, $co_branch, $alternates, @subset) = @_;
|
my ($self, $my_repo_base, $co_branch, $alternates, @subset) = @_;
|
||||||
@@ -319,8 +325,9 @@ sub git_clone_all_submodules
|
|||||||
$subbranches{$1} = $3;
|
$subbranches{$1} = $3;
|
||||||
} elsif ($2 eq "url") {
|
} elsif ($2 eq "url") {
|
||||||
my ($mod, $base) = ($1, $3);
|
my ($mod, $base) = ($1, $3);
|
||||||
next if ($base !~ /^\.\.\//);
|
if (!has_url_scheme($base)) {
|
||||||
$base = $my_repo_base.'/'.$base;
|
$base = $my_repo_base.'/'.$base;
|
||||||
|
}
|
||||||
while ($base =~ s,(?!\.\./)[^/]+/\.\./,,g) {}
|
while ($base =~ s,(?!\.\./)[^/]+/\.\./,,g) {}
|
||||||
$subbases{$mod} = $base;
|
$subbases{$mod} = $base;
|
||||||
} elsif ($2 eq "update") {
|
} elsif ($2 eq "update") {
|
||||||
@@ -519,7 +526,11 @@ sub git_clone_one_submodule
|
|||||||
|
|
||||||
my $do_clone = (! -e "$submodule/.git");
|
my $do_clone = (! -e "$submodule/.git");
|
||||||
|
|
||||||
my $url = $self->{'base-url'}.$repo_basename;
|
my $url = $repo_basename;
|
||||||
|
if (!has_url_scheme($url)) {
|
||||||
|
$url = $self->{'base-url'}.$url;
|
||||||
|
}
|
||||||
|
|
||||||
my $mirror;
|
my $mirror;
|
||||||
if ($mirror_url && ($do_clone || $self->{fetch})) {
|
if ($mirror_url && ($do_clone || $self->{fetch})) {
|
||||||
$mirror = $mirror_url.$repo_basename;
|
$mirror = $mirror_url.$repo_basename;
|
||||||
|
|||||||
Reference in New Issue
Block a user