diff options
| -rw-r--r-- | man/repo-smartsync.1 | 9 | ||||
| -rw-r--r-- | man/repo-sync.1 | 12 | ||||
| -rw-r--r-- | man/repo.1 | 6 | ||||
| -rw-r--r-- | subcmds/sync.py | 20 |
4 files changed, 43 insertions, 4 deletions
diff --git a/man/repo-smartsync.1 b/man/repo-smartsync.1 index 8475adf1..c1abbb38 100644 --- a/man/repo-smartsync.1 +++ b/man/repo-smartsync.1 | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. | 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. |
| 2 | .TH REPO "1" "August 2022" "repo smartsync" "Repo Manual" | 2 | .TH REPO "1" "November 2022" "repo smartsync" "Repo Manual" |
| 3 | .SH NAME | 3 | .SH NAME |
| 4 | repo \- repo smartsync - manual page for repo smartsync | 4 | repo \- repo smartsync - manual page for repo smartsync |
| 5 | .SH SYNOPSIS | 5 | .SH SYNOPSIS |
| @@ -105,6 +105,13 @@ delete refs that no longer exist on the remote | |||
| 105 | .TP | 105 | .TP |
| 106 | \fB\-\-no\-prune\fR | 106 | \fB\-\-no\-prune\fR |
| 107 | do not delete refs that no longer exist on the remote | 107 | do not delete refs that no longer exist on the remote |
| 108 | .TP | ||
| 109 | \fB\-\-auto\-gc\fR | ||
| 110 | run garbage collection on all synced projects | ||
| 111 | .TP | ||
| 112 | \fB\-\-no\-auto\-gc\fR | ||
| 113 | do not run garbage collection on any projects | ||
| 114 | (default) | ||
| 108 | .SS Logging options: | 115 | .SS Logging options: |
| 109 | .TP | 116 | .TP |
| 110 | \fB\-v\fR, \fB\-\-verbose\fR | 117 | \fB\-v\fR, \fB\-\-verbose\fR |
diff --git a/man/repo-sync.1 b/man/repo-sync.1 index 9cc528dd..f006c03d 100644 --- a/man/repo-sync.1 +++ b/man/repo-sync.1 | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. | 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. |
| 2 | .TH REPO "1" "August 2022" "repo sync" "Repo Manual" | 2 | .TH REPO "1" "November 2022" "repo sync" "Repo Manual" |
| 3 | .SH NAME | 3 | .SH NAME |
| 4 | repo \- repo sync - manual page for repo sync | 4 | repo \- repo sync - manual page for repo sync |
| 5 | .SH SYNOPSIS | 5 | .SH SYNOPSIS |
| @@ -106,6 +106,13 @@ delete refs that no longer exist on the remote | |||
| 106 | \fB\-\-no\-prune\fR | 106 | \fB\-\-no\-prune\fR |
| 107 | do not delete refs that no longer exist on the remote | 107 | do not delete refs that no longer exist on the remote |
| 108 | .TP | 108 | .TP |
| 109 | \fB\-\-auto\-gc\fR | ||
| 110 | run garbage collection on all synced projects | ||
| 111 | .TP | ||
| 112 | \fB\-\-no\-auto\-gc\fR | ||
| 113 | do not run garbage collection on any projects | ||
| 114 | (default) | ||
| 115 | .TP | ||
| 109 | \fB\-s\fR, \fB\-\-smart\-sync\fR | 116 | \fB\-s\fR, \fB\-\-smart\-sync\fR |
| 110 | smart sync using manifest from the latest known good | 117 | smart sync using manifest from the latest known good |
| 111 | build | 118 | build |
| @@ -200,6 +207,9 @@ to a sha1 revision if the sha1 revision does not already exist locally. | |||
| 200 | The \fB\-\-prune\fR option can be used to remove any refs that no longer exist on the | 207 | The \fB\-\-prune\fR option can be used to remove any refs that no longer exist on the |
| 201 | remote. | 208 | remote. |
| 202 | .PP | 209 | .PP |
| 210 | The \fB\-\-auto\-gc\fR option can be used to trigger garbage collection on all projects. | ||
| 211 | By default, repo does not run garbage collection. | ||
| 212 | .PP | ||
| 203 | SSH Connections | 213 | SSH Connections |
| 204 | .PP | 214 | .PP |
| 205 | If at least one project remote URL uses an SSH connection (ssh://, git+ssh://, | 215 | If at least one project remote URL uses an SSH connection (ssh://, git+ssh://, |
| @@ -1,5 +1,5 @@ | |||
| 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. | 1 | .\" DO NOT MODIFY THIS FILE! It was generated by help2man. |
| 2 | .TH REPO "1" "July 2022" "repo" "Repo Manual" | 2 | .TH REPO "1" "November 2022" "repo" "Repo Manual" |
| 3 | .SH NAME | 3 | .SH NAME |
| 4 | repo \- repository management tool built on top of git | 4 | repo \- repository management tool built on top of git |
| 5 | .SH SYNOPSIS | 5 | .SH SYNOPSIS |
| @@ -25,6 +25,10 @@ control color usage: auto, always, never | |||
| 25 | \fB\-\-trace\fR | 25 | \fB\-\-trace\fR |
| 26 | trace git command execution (REPO_TRACE=1) | 26 | trace git command execution (REPO_TRACE=1) |
| 27 | .TP | 27 | .TP |
| 28 | \fB\-\-trace_to_stderr\fR | ||
| 29 | trace outputs go to stderr in addition to | ||
| 30 | \&.repo/TRACE_FILE | ||
| 31 | .TP | ||
| 28 | \fB\-\-trace\-python\fR | 32 | \fB\-\-trace\-python\fR |
| 29 | trace python command execution | 33 | trace python command execution |
| 30 | .TP | 34 | .TP |
diff --git a/subcmds/sync.py b/subcmds/sync.py index 83c9ad36..b7542cca 100644 --- a/subcmds/sync.py +++ b/subcmds/sync.py | |||
| @@ -200,6 +200,9 @@ exist locally. | |||
| 200 | The --prune option can be used to remove any refs that no longer | 200 | The --prune option can be used to remove any refs that no longer |
| 201 | exist on the remote. | 201 | exist on the remote. |
| 202 | 202 | ||
| 203 | The --auto-gc option can be used to trigger garbage collection on all | ||
| 204 | projects. By default, repo does not run garbage collection. | ||
| 205 | |||
| 203 | # SSH Connections | 206 | # SSH Connections |
| 204 | 207 | ||
| 205 | If at least one project remote URL uses an SSH connection (ssh://, | 208 | 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. | |||
| 309 | help='delete refs that no longer exist on the remote (default)') | 312 | help='delete refs that no longer exist on the remote (default)') |
| 310 | p.add_option('--no-prune', dest='prune', action='store_false', | 313 | p.add_option('--no-prune', dest='prune', action='store_false', |
| 311 | help='do not delete refs that no longer exist on the remote') | 314 | help='do not delete refs that no longer exist on the remote') |
| 315 | p.add_option('--auto-gc', action='store_true', | ||
| 316 | help='run garbage collection on all synced projects') | ||
| 317 | p.add_option('--no-auto-gc', dest='auto_gc', action='store_false', | ||
| 318 | help='do not run garbage collection on any projects (default)') | ||
| 312 | if show_smart: | 319 | if show_smart: |
| 313 | p.add_option('-s', '--smart-sync', | 320 | p.add_option('-s', '--smart-sync', |
| 314 | dest='smart_sync', action='store_true', | 321 | dest='smart_sync', action='store_true', |
| @@ -829,7 +836,14 @@ later is required to fix a server side protocol bug. | |||
| 829 | project.config.SetString('gc.pruneExpire', None) | 836 | project.config.SetString('gc.pruneExpire', None) |
| 830 | 837 | ||
| 831 | def _GCProjects(self, projects, opt, err_event): | 838 | def _GCProjects(self, projects, opt, err_event): |
| 832 | pm = Progress('Garbage collecting', len(projects), delay=False, quiet=opt.quiet) | 839 | """Perform garbage collection. |
| 840 | |||
| 841 | If We are skipping garbage collection (opt.auto_gc not set), we still want | ||
| 842 | to potentially mark objects precious, so that `git gc` does not discard | ||
| 843 | shared objects. | ||
| 844 | """ | ||
| 845 | pm = Progress(f'{"" if opt.auto_gc else "NOT "}Garbage collecting', | ||
| 846 | len(projects), delay=False, quiet=opt.quiet) | ||
| 833 | pm.update(inc=0, msg='prescan') | 847 | pm.update(inc=0, msg='prescan') |
| 834 | 848 | ||
| 835 | tidy_dirs = {} | 849 | tidy_dirs = {} |
| @@ -849,6 +863,10 @@ later is required to fix a server side protocol bug. | |||
| 849 | project.bare_git, | 863 | project.bare_git, |
| 850 | ) | 864 | ) |
| 851 | 865 | ||
| 866 | if not opt.auto_gc: | ||
| 867 | pm.end() | ||
| 868 | return | ||
| 869 | |||
| 852 | jobs = opt.jobs | 870 | jobs = opt.jobs |
| 853 | 871 | ||
| 854 | gc_args = ['--auto'] | 872 | gc_args = ['--auto'] |
