mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
sync: no garbage collection by default
Adds --auto-gc and --no-auto-gc (default) options to control sync's behavior around calling `git gc`. Bug: b/184882274 Change-Id: I4d6ca3b233d79566f27e876ab2d79f238ebc12a9 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/344535 Reviewed-by: Xin Li <delphij@google.com> Tested-by: LaMont Jones <lamontjones@google.com>
This commit is contained in:
parent
a3ff64cae5
commit
7efab539f0
@ -1,5 +1,5 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
||||||
.TH REPO "1" "August 2022" "repo smartsync" "Repo Manual"
|
.TH REPO "1" "November 2022" "repo smartsync" "Repo Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
repo \- repo smartsync - manual page for repo smartsync
|
repo \- repo smartsync - manual page for repo smartsync
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -105,6 +105,13 @@ delete refs that no longer exist on the remote
|
|||||||
.TP
|
.TP
|
||||||
\fB\-\-no\-prune\fR
|
\fB\-\-no\-prune\fR
|
||||||
do not delete refs that no longer exist on the remote
|
do not delete refs that no longer exist on the remote
|
||||||
|
.TP
|
||||||
|
\fB\-\-auto\-gc\fR
|
||||||
|
run garbage collection on all synced projects
|
||||||
|
.TP
|
||||||
|
\fB\-\-no\-auto\-gc\fR
|
||||||
|
do not run garbage collection on any projects
|
||||||
|
(default)
|
||||||
.SS Logging options:
|
.SS Logging options:
|
||||||
.TP
|
.TP
|
||||||
\fB\-v\fR, \fB\-\-verbose\fR
|
\fB\-v\fR, \fB\-\-verbose\fR
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
||||||
.TH REPO "1" "August 2022" "repo sync" "Repo Manual"
|
.TH REPO "1" "November 2022" "repo sync" "Repo Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
repo \- repo sync - manual page for repo sync
|
repo \- repo sync - manual page for repo sync
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -106,6 +106,13 @@ delete refs that no longer exist on the remote
|
|||||||
\fB\-\-no\-prune\fR
|
\fB\-\-no\-prune\fR
|
||||||
do not delete refs that no longer exist on the remote
|
do not delete refs that no longer exist on the remote
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-\-auto\-gc\fR
|
||||||
|
run garbage collection on all synced projects
|
||||||
|
.TP
|
||||||
|
\fB\-\-no\-auto\-gc\fR
|
||||||
|
do not run garbage collection on any projects
|
||||||
|
(default)
|
||||||
|
.TP
|
||||||
\fB\-s\fR, \fB\-\-smart\-sync\fR
|
\fB\-s\fR, \fB\-\-smart\-sync\fR
|
||||||
smart sync using manifest from the latest known good
|
smart sync using manifest from the latest known good
|
||||||
build
|
build
|
||||||
@ -200,6 +207,9 @@ to a sha1 revision if the sha1 revision does not already exist locally.
|
|||||||
The \fB\-\-prune\fR option can be used to remove any refs that no longer exist on the
|
The \fB\-\-prune\fR option can be used to remove any refs that no longer exist on the
|
||||||
remote.
|
remote.
|
||||||
.PP
|
.PP
|
||||||
|
The \fB\-\-auto\-gc\fR option can be used to trigger garbage collection on all projects.
|
||||||
|
By default, repo does not run garbage collection.
|
||||||
|
.PP
|
||||||
SSH Connections
|
SSH Connections
|
||||||
.PP
|
.PP
|
||||||
If at least one project remote URL uses an SSH connection (ssh://, git+ssh://,
|
If at least one project remote URL uses an SSH connection (ssh://, git+ssh://,
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
|
||||||
.TH REPO "1" "July 2022" "repo" "Repo Manual"
|
.TH REPO "1" "November 2022" "repo" "Repo Manual"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
repo \- repository management tool built on top of git
|
repo \- repository management tool built on top of git
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@ -25,6 +25,10 @@ control color usage: auto, always, never
|
|||||||
\fB\-\-trace\fR
|
\fB\-\-trace\fR
|
||||||
trace git command execution (REPO_TRACE=1)
|
trace git command execution (REPO_TRACE=1)
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-\-trace_to_stderr\fR
|
||||||
|
trace outputs go to stderr in addition to
|
||||||
|
\&.repo/TRACE_FILE
|
||||||
|
.TP
|
||||||
\fB\-\-trace\-python\fR
|
\fB\-\-trace\-python\fR
|
||||||
trace python command execution
|
trace python command execution
|
||||||
.TP
|
.TP
|
||||||
|
@ -200,6 +200,9 @@ exist locally.
|
|||||||
The --prune option can be used to remove any refs that no longer
|
The --prune option can be used to remove any refs that no longer
|
||||||
exist on the remote.
|
exist on the remote.
|
||||||
|
|
||||||
|
The --auto-gc option can be used to trigger garbage collection on all
|
||||||
|
projects. By default, repo does not run garbage collection.
|
||||||
|
|
||||||
# SSH Connections
|
# SSH Connections
|
||||||
|
|
||||||
If at least one project remote URL uses an SSH connection (ssh://,
|
If at least one project remote URL uses an SSH connection (ssh://,
|
||||||
@ -309,6 +312,10 @@ later is required to fix a server side protocol bug.
|
|||||||
help='delete refs that no longer exist on the remote (default)')
|
help='delete refs that no longer exist on the remote (default)')
|
||||||
p.add_option('--no-prune', dest='prune', action='store_false',
|
p.add_option('--no-prune', dest='prune', action='store_false',
|
||||||
help='do not delete refs that no longer exist on the remote')
|
help='do not delete refs that no longer exist on the remote')
|
||||||
|
p.add_option('--auto-gc', action='store_true',
|
||||||
|
help='run garbage collection on all synced projects')
|
||||||
|
p.add_option('--no-auto-gc', dest='auto_gc', action='store_false',
|
||||||
|
help='do not run garbage collection on any projects (default)')
|
||||||
if show_smart:
|
if show_smart:
|
||||||
p.add_option('-s', '--smart-sync',
|
p.add_option('-s', '--smart-sync',
|
||||||
dest='smart_sync', action='store_true',
|
dest='smart_sync', action='store_true',
|
||||||
@ -829,7 +836,14 @@ later is required to fix a server side protocol bug.
|
|||||||
project.config.SetString('gc.pruneExpire', None)
|
project.config.SetString('gc.pruneExpire', None)
|
||||||
|
|
||||||
def _GCProjects(self, projects, opt, err_event):
|
def _GCProjects(self, projects, opt, err_event):
|
||||||
pm = Progress('Garbage collecting', len(projects), delay=False, quiet=opt.quiet)
|
"""Perform garbage collection.
|
||||||
|
|
||||||
|
If We are skipping garbage collection (opt.auto_gc not set), we still want
|
||||||
|
to potentially mark objects precious, so that `git gc` does not discard
|
||||||
|
shared objects.
|
||||||
|
"""
|
||||||
|
pm = Progress(f'{"" if opt.auto_gc else "NOT "}Garbage collecting',
|
||||||
|
len(projects), delay=False, quiet=opt.quiet)
|
||||||
pm.update(inc=0, msg='prescan')
|
pm.update(inc=0, msg='prescan')
|
||||||
|
|
||||||
tidy_dirs = {}
|
tidy_dirs = {}
|
||||||
@ -849,6 +863,10 @@ later is required to fix a server side protocol bug.
|
|||||||
project.bare_git,
|
project.bare_git,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if not opt.auto_gc:
|
||||||
|
pm.end()
|
||||||
|
return
|
||||||
|
|
||||||
jobs = opt.jobs
|
jobs = opt.jobs
|
||||||
|
|
||||||
gc_args = ['--auto']
|
gc_args = ['--auto']
|
||||||
|
Loading…
Reference in New Issue
Block a user