[offload] Pass offload config to Clone operations.
This config needs to be set before the config takes place, so we can
simply pass it as a `-c` option on the command line to ensure its
present in the necessary cases.
Bug: 59974
Change-Id: Id9f036f6c81d6c2483685d6a6f184b7216c0942f
Reviewed-on: https://fuchsia-review.googlesource.com/c/jiri/+/430236
Reviewed-by: Haowei Wu <haowei@google.com>
Commit-Queue: Nathan Mulcahey <nmulcahey@google.com>
diff --git a/gitutil/git.go b/gitutil/git.go
index 9558479..bb1f065 100644
--- a/gitutil/git.go
+++ b/gitutil/git.go
@@ -322,6 +322,10 @@
if typedOpt {
args = append(args, "--filter=blob:none")
}
+ case OffloadPackfilesOpt:
+ if typedOpt {
+ args = append([]string{"-c", "fetch.uriprotocols", "https"}, args...)
+ }
}
}
args = append(args, repo)
diff --git a/gitutil/options.go b/gitutil/options.go
index 9462573..5f1b385 100644
--- a/gitutil/options.go
+++ b/gitutil/options.go
@@ -130,3 +130,7 @@
type UpdateHeadOkOpt bool
func (UpdateHeadOkOpt) fetchOpt() {}
+
+type OffloadPackfilesOpt bool
+
+func (OffloadPackfilesOpt) cloneOpt() {}
diff --git a/project/loader.go b/project/loader.go
index 38c3e93..c6d91ed 100644
--- a/project/loader.go
+++ b/project/loader.go
@@ -339,6 +339,9 @@
if jirix.Partial {
opts = append(opts, gitutil.OmitBlobsOpt(true))
}
+ if jirix.OffloadPackfiles {
+ opts = append(opts, gitutil.OffloadPackfilesOpt(true))
+ }
if err := clone(jirix, remoteUrl, path, opts...); err != nil {
return err
}
diff --git a/project/operations.go b/project/operations.go
index 72aefb5..e6a6df6 100644
--- a/project/operations.go
+++ b/project/operations.go
@@ -153,6 +153,9 @@
if (cache == r || cache == "") && jirix.Partial {
opts = append(opts, gitutil.OmitBlobsOpt(true))
}
+ if jirix.OffloadPackfiles {
+ opts = append(opts, gitutil.OffloadPackfilesOpt(true))
+ }
if err = clone(jirix, r, op.destination, opts...); err != nil {
return err
}
diff --git a/project/project.go b/project/project.go
index 1380637..8a4a060 100644
--- a/project/project.go
+++ b/project/project.go
@@ -2165,6 +2165,9 @@
} else {
opts = append(opts, gitutil.BareOpt(true))
}
+ if jirix.OffloadPackfiles {
+ opts = append(opts, gitutil.OffloadPackfilesOpt(true))
+ }
if err := gitutil.New(jirix).Clone(remote, dir, opts...); err != nil {
return err
}