From 13d6588bf60f0980ffa3d178441fa707655fee95 Mon Sep 17 00:00:00 2001 From: Josip Sokcevic Date: Mon, 16 Dec 2024 22:30:07 +0000 Subject: gc: Introduce new command to remove old projects When projects are removed from manifest, they are only removed from worktree and not from .repo/projects and .repo/project-objects. Keeping data under .repo can be desired if user expects deleted projects to be restored (e.g. checking out a release branch). Android has ongoing effort to remove many stale projects and this change allows users to easily free-up their disk space. Bug: b/344018971 Bug: 40013312 Change-Id: Id23c7524a88082ee6db908f9fd69dcd5d0c4f681 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/445921 Reviewed-by: Mike Frysinger Commit-Queue: Josip Sokcevic Reviewed-by: Gavin Mak Tested-by: Josip Sokcevic --- man/repo-gc.1 | 43 +++++++++++++++++++++++++++++++++++++++++++ man/repo-manifest.1 | 20 +++++++++++++++++++- man/repo.1 | 5 ++++- 3 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 man/repo-gc.1 (limited to 'man') diff --git a/man/repo-gc.1 b/man/repo-gc.1 new file mode 100644 index 00000000..e465a253 --- /dev/null +++ b/man/repo-gc.1 @@ -0,0 +1,43 @@ +.\" DO NOT MODIFY THIS FILE! It was generated by help2man. +.TH REPO "1" "December 2024" "repo gc" "Repo Manual" +.SH NAME +repo \- repo gc - manual page for repo gc +.SH SYNOPSIS +.B repo +\fI\,gc\/\fR +.SH DESCRIPTION +Summary +.PP +Cleaning up internal repo state. +.SH OPTIONS +.TP +\fB\-h\fR, \fB\-\-help\fR +show this help message and exit +.TP +\fB\-n\fR, \fB\-\-dry\-run\fR +do everything except actually delete +.TP +\fB\-y\fR, \fB\-\-yes\fR +answer yes to all safe prompts +.SS Logging options: +.TP +\fB\-v\fR, \fB\-\-verbose\fR +show all output +.TP +\fB\-q\fR, \fB\-\-quiet\fR +only show errors +.SS Multi\-manifest options: +.TP +\fB\-\-outer\-manifest\fR +operate starting at the outermost manifest +.TP +\fB\-\-no\-outer\-manifest\fR +do not operate on outer manifests +.TP +\fB\-\-this\-manifest\-only\fR +only operate on this (sub)manifest +.TP +\fB\-\-no\-this\-manifest\-only\fR, \fB\-\-all\-manifests\fR +operate on this manifest and its submanifests +.PP +Run `repo help gc` to view the detailed manual. diff --git a/man/repo-manifest.1 b/man/repo-manifest.1 index 10ec2e75..2ee23e64 100644 --- a/man/repo-manifest.1 +++ b/man/repo-manifest.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man. -.TH REPO "1" "April 2024" "repo manifest" "Repo Manual" +.TH REPO "1" "December 2024" "repo manifest" "Repo Manual" .SH NAME repo \- repo manifest - manual page for repo manifest .SH SYNOPSIS @@ -192,11 +192,13 @@ CDATA #IMPLIED> + .IP + .IP @@ -495,6 +497,14 @@ project. Same syntax as the corresponding element of `project`. Attribute `upstream`: If specified, overrides the upstream of the original project. Same syntax as the corresponding element of `project`. .PP +Attribute `base\-rev`: If specified, adds a check against the revision to be +extended. Manifest parse will fail and give a list of mismatch extends if the +revisions being extended have changed since base\-rev was set. Intended for use +with layered manifests using hash revisions to prevent patch branches hiding +newer upstream revisions. Also compares named refs like branches or tags but is +misleading if branches are used as base\-rev. Same syntax as the corresponding +element of `project`. +.PP Element annotation .PP Zero or more annotation elements may be specified as children of a project or @@ -556,6 +566,14 @@ Logic otherwise behaves like both are specified. Attribute `optional`: Set to true to ignore remove\-project elements with no matching `project` element. .PP +Attribute `base\-rev`: If specified, adds a check against the revision to be +removed. Manifest parse will fail and give a list of mismatch removes if the +revisions being removed have changed since base\-rev was set. Intended for use +with layered manifests using hash revisions to prevent patch branches hiding +newer upstream revisions. Also compares named refs like branches or tags but is +misleading if branches are used as base\-rev. Same syntax as the corresponding +element of `project`. +.PP Element repo\-hooks .PP NB: See the [practical documentation](./repo\-hooks.md) for using repo hooks. diff --git a/man/repo.1 b/man/repo.1 index bda68c39..1c05dcfc 100644 --- a/man/repo.1 +++ b/man/repo.1 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man. -.TH REPO "1" "April 2024" "repo" "Repo Manual" +.TH REPO "1" "December 2024" "repo" "Repo Manual" .SH NAME repo \- repository management tool built on top of git .SH SYNOPSIS @@ -79,6 +79,9 @@ Download and checkout a change forall Run a shell command in each project .TP +gc +Cleaning up internal repo state. +.TP grep Print lines matching a pattern .TP -- cgit v1.2.3-54-g00ecf