mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-21 20:36:54 +08:00
add --no-fetch option
there is no point in re-fetching all repositories just because an update failed due to local modifications. Change-Id: Ie9883586d77f3310058353844f0bbcfb0b775ebb Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This commit is contained in:
@@ -82,6 +82,9 @@ Options:
|
|||||||
--no-update
|
--no-update
|
||||||
Skip the `git submodule update' command.
|
Skip the `git submodule update' command.
|
||||||
|
|
||||||
|
--no-fetch
|
||||||
|
Skip the `git fetch' commands. Implied by --no-update.
|
||||||
|
|
||||||
--branch
|
--branch
|
||||||
Instead of checking out specific SHA1s, check out the submodule
|
Instead of checking out specific SHA1s, check out the submodule
|
||||||
branches that correspond with the current supermodule commit. By
|
branches that correspond with the current supermodule commit. By
|
||||||
@@ -213,6 +216,7 @@ sub parse_arguments
|
|||||||
'ignore-submodules' => 0 ,
|
'ignore-submodules' => 0 ,
|
||||||
'mirror-url' => "",
|
'mirror-url' => "",
|
||||||
'update' => 1 ,
|
'update' => 1 ,
|
||||||
|
'fetch' => 1 ,
|
||||||
'module-subset' => "default",
|
'module-subset' => "default",
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -227,6 +231,7 @@ sub parse_arguments
|
|||||||
'mirror=s' => \$self->{qw{ mirror-url }},
|
'mirror=s' => \$self->{qw{ mirror-url }},
|
||||||
'quiet' => \$self->{qw{ quiet }},
|
'quiet' => \$self->{qw{ quiet }},
|
||||||
'update!' => \$self->{qw{ update }},
|
'update!' => \$self->{qw{ update }},
|
||||||
|
'fetch!' => \$self->{qw{ fetch }},
|
||||||
'module-subset=s' => \$self->{qw{ module-subset }},
|
'module-subset=s' => \$self->{qw{ module-subset }},
|
||||||
|
|
||||||
'help|?' => sub { printUsage(1); },
|
'help|?' => sub { printUsage(1); },
|
||||||
@@ -245,6 +250,8 @@ sub parse_arguments
|
|||||||
$self->{'module-subset'} =~ s/\bdefault\b/preview,essential,addon,deprecated/;
|
$self->{'module-subset'} =~ s/\bdefault\b/preview,essential,addon,deprecated/;
|
||||||
$self->{'module-subset'} = [ split(/,/, $self->{'module-subset'}) ];
|
$self->{'module-subset'} = [ split(/,/, $self->{'module-subset'}) ];
|
||||||
|
|
||||||
|
$self->{'fetch'} = 0 if (!$self->{'update'});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -466,9 +473,11 @@ sub git_clone_one_submodule
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $do_clone = (! -e "$submodule/.git");
|
||||||
|
|
||||||
my $url = $self->{'base-url'}.$repo_basename;
|
my $url = $self->{'base-url'}.$repo_basename;
|
||||||
my $mirror;
|
my $mirror;
|
||||||
if ($mirror_url) {
|
if ($mirror_url && ($do_clone || $self->{fetch})) {
|
||||||
$mirror = $mirror_url.$repo_basename;
|
$mirror = $mirror_url.$repo_basename;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,7 +490,6 @@ sub git_clone_one_submodule
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my $do_clone = (! -e "$submodule/.git");
|
|
||||||
if ($do_clone) {
|
if ($do_clone) {
|
||||||
if ($branch) {
|
if ($branch) {
|
||||||
push @reference_args, '--branch', $branch;
|
push @reference_args, '--branch', $branch;
|
||||||
@@ -501,14 +509,14 @@ sub git_clone_one_submodule
|
|||||||
$self->exe('git', 'config', 'remote.mirror.fetch', '+refs/heads/*:refs/remotes/mirror/*');
|
$self->exe('git', 'config', 'remote.mirror.fetch', '+refs/heads/*:refs/remotes/mirror/*');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$do_clone && $self->{update}) {
|
if (!$do_clone && $self->{fetch}) {
|
||||||
# If we didn't clone, fetch from the right location. We always update
|
# If we didn't clone, fetch from the right location. We always update
|
||||||
# the origin remote, so that submodule update --remote works.
|
# the origin remote, so that submodule update --remote works.
|
||||||
$self->exe('git', 'config', 'remote.origin.url', ($mirror ? $mirror : $url));
|
$self->exe('git', 'config', 'remote.origin.url', ($mirror ? $mirror : $url));
|
||||||
$self->exe('git', 'fetch', 'origin');
|
$self->exe('git', 'fetch', 'origin');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!($do_clone || $self->{update}) || $mirror) {
|
if (!($do_clone || $self->{fetch}) || $mirror) {
|
||||||
# Leave the origin configured to the canonical URL. It's already correct
|
# Leave the origin configured to the canonical URL. It's already correct
|
||||||
# if we cloned/fetched without a mirror; otherwise it may be anything.
|
# if we cloned/fetched without a mirror; otherwise it may be anything.
|
||||||
$self->exe('git', 'config', 'remote.origin.url', $url);
|
$self->exe('git', 'config', 'remote.origin.url', $url);
|
||||||
|
|||||||
Reference in New Issue
Block a user