[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [builders/rbm] 01/02: Bug 40009: Add git_depth option
This is an automated email from the git hooks/post-receive script.
boklm pushed a commit to branch main
in repository builders/rbm.
commit e7b453d37a4202ef1d0e41703d3595a4674eeb8d
Author: Jeremy Rand <jeremyrand@xxxxxxxxxxxxx>
AuthorDate: Sat May 7 20:46:13 2022 +0000
Bug 40009: Add git_depth option
---
doc/options_tar.asc | 5 +++++
lib/RBM.pm | 18 +++++++++++-------
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/doc/options_tar.asc b/doc/options_tar.asc
index c21317f..40e2cc5 100644
--- a/doc/options_tar.asc
+++ b/doc/options_tar.asc
@@ -20,6 +20,11 @@ git_submodule::
If this option is enabled, git submodules are fetched and
included in the tarball. This option is disabled by default.
+git_depth::
+ An integer specifying a depth for shallow Git clone/fetch
+ depth, to decrease network and storage usage. If not set,
+ shallow clone/fetch is disabled.
+
compress_tar::
If set, the tarball created will be compressed in the select
format. Possible values: xz, gz, bz2. The default is gz but it
diff --git a/lib/RBM.pm b/lib/RBM.pm
index a92a04b..fc9a7a1 100644
--- a/lib/RBM.pm
+++ b/lib/RBM.pm
@@ -437,15 +437,19 @@ sub git_clone_fetch_chdir {
'git_clone_dir', $options)));
my $git_url = project_config($project, 'git_url', $options)
|| exit_error "git_url is undefined";
- my @clone_submod = ();
- my @fetch_submod = ();
+ my @clone_opts = ();
+ my @fetch_opts = ();
if (project_config($project, 'git_submodule', $options)) {
- @clone_submod = ('--recurse-submodules');
- @fetch_submod = ('--recurse-submodules=on-demand');
+ push @clone_opts, ('--recurse-submodules');
+ push @fetch_opts, ('--recurse-submodules=on-demand');
+ }
+ if (my $git_depth = project_config($project, 'git_depth', $options)) {
+ push @clone_opts, ("--depth=$git_depth");
+ push @fetch_opts, ("--depth=$git_depth");
}
if (!chdir rbm_path("$clonedir/$project")) {
chdir $clonedir || exit_error "Can't enter directory $clonedir: $!";
- if (system('git', 'clone', @clone_submod, $git_url, $project) != 0) {
+ if (system('git', 'clone', @clone_opts, $git_url, $project) != 0) {
exit_error "Error cloning $git_url";
}
chdir($project) || exit_error "Error entering $project directory";
@@ -458,10 +462,10 @@ sub git_clone_fetch_chdir {
system('git', 'checkout', '-q', '--detach') == 0
|| exit_error "Error running git checkout --detach";
}
- system('git', 'fetch', @fetch_submod, 'origin',
+ system('git', 'fetch', @fetch_opts, 'origin',
'+refs/heads/*:refs/heads/*') == 0
|| exit_error "Error fetching git repository";
- system('git', 'fetch', @fetch_submod, 'origin',
+ system('git', 'fetch', @fetch_opts, 'origin',
'+refs/tags/*:refs/tags/*') == 0
|| exit_error "Error fetching git repository";
$config->{_rbm}{fetched_projects}{$project} = 1;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits