summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--man/repo-abandon.135
-rw-r--r--man/repo-branch.11
-rw-r--r--man/repo-branches.158
-rw-r--r--man/repo-checkout.135
-rw-r--r--man/repo-cherry-pick.128
-rw-r--r--man/repo-diff.134
-rw-r--r--man/repo-diffmanifests.161
-rw-r--r--man/repo-download.144
-rw-r--r--man/repo-forall.1127
-rw-r--r--man/repo-gitc-delete.131
-rw-r--r--man/repo-gitc-init.1146
-rw-r--r--man/repo-grep.1118
-rw-r--r--man/repo-help.133
-rw-r--r--man/repo-info.140
-rw-r--r--man/repo-init.1160
-rw-r--r--man/repo-list.157
-rw-r--r--man/repo-manifest.1545
-rw-r--r--man/repo-overview.139
-rw-r--r--man/repo-prune.127
-rw-r--r--man/repo-rebase.155
-rw-r--r--man/repo-selfupdate.135
-rw-r--r--man/repo-smartsync.1117
-rw-r--r--man/repo-stage.130
-rw-r--r--man/repo-start.140
-rw-r--r--man/repo-status.197
-rw-r--r--man/repo-sync.1208
-rw-r--r--man/repo-upload.1174
-rw-r--r--man/repo-version.124
-rw-r--r--man/repo.193
-rwxr-xr-xrelease/update-manpages85
30 files changed, 2577 insertions, 0 deletions
diff --git a/man/repo-abandon.1 b/man/repo-abandon.1
new file mode 100644
index 00000000..fb3160c3
--- /dev/null
+++ b/man/repo-abandon.1
@@ -0,0 +1,35 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo abandon" "Repo Manual"
3.SH NAME
4repo \- repo abandon - manual page for repo abandon
5.SH SYNOPSIS
6.B repo
7\fI\,abandon \/\fR[\fI\,--all | <branchname>\/\fR] [\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Permanently abandon a development branch
12.PP
13This subcommand permanently abandons a development branch by
14deleting it (and all its history) from your local repository.
15.PP
16It is equivalent to "git branch \fB\-D\fR <branchname>".
17.SH OPTIONS
18.TP
19\fB\-h\fR, \fB\-\-help\fR
20show this help message and exit
21.TP
22\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
23number of jobs to run in parallel (default: 4)
24.TP
25\fB\-\-all\fR
26delete all branches in all projects
27.SS Logging options:
28.TP
29\fB\-v\fR, \fB\-\-verbose\fR
30show all output
31.TP
32\fB\-q\fR, \fB\-\-quiet\fR
33only show errors
34.PP
35Run `repo help abandon` to view the detailed manual.
diff --git a/man/repo-branch.1 b/man/repo-branch.1
new file mode 100644
index 00000000..854ee98b
--- /dev/null
+++ b/man/repo-branch.1
@@ -0,0 +1 @@
.so man1/repo-branches.1 \ No newline at end of file
diff --git a/man/repo-branches.1 b/man/repo-branches.1
new file mode 100644
index 00000000..0080e467
--- /dev/null
+++ b/man/repo-branches.1
@@ -0,0 +1,58 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo branches" "Repo Manual"
3.SH NAME
4repo \- repo branches - manual page for repo branches
5.SH SYNOPSIS
6.B repo
7\fI\,branches \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11View current topic branches
12.PP
13Summarizes the currently available topic branches.
14.PP
15# Branch Display
16.PP
17The branch display output by this command is organized into four
18columns of information; for example:
19.TP
20*P nocolor
21| in repo
22.TP
23repo2
24|
25.PP
26The first column contains a * if the branch is the currently
27checked out branch in any of the specified projects, or a blank
28if no project has the branch checked out.
29.PP
30The second column contains either blank, p or P, depending upon
31the upload status of the branch.
32.IP
33(blank): branch not yet published by repo upload
34.IP
35P: all commits were published by repo upload
36p: only some commits were published by repo upload
37.PP
38The third column contains the branch name.
39.PP
40The fourth column (after the | separator) lists the projects that
41the branch appears in, or does not appear in. If no project list
42is shown, then the branch appears in all projects.
43.SH OPTIONS
44.TP
45\fB\-h\fR, \fB\-\-help\fR
46show this help message and exit
47.TP
48\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
49number of jobs to run in parallel (default: 4)
50.SS Logging options:
51.TP
52\fB\-v\fR, \fB\-\-verbose\fR
53show all output
54.TP
55\fB\-q\fR, \fB\-\-quiet\fR
56only show errors
57.PP
58Run `repo help branches` to view the detailed manual.
diff --git a/man/repo-checkout.1 b/man/repo-checkout.1
new file mode 100644
index 00000000..882b4baf
--- /dev/null
+++ b/man/repo-checkout.1
@@ -0,0 +1,35 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo checkout" "Repo Manual"
3.SH NAME
4repo \- repo checkout - manual page for repo checkout
5.SH SYNOPSIS
6.B repo
7\fI\,checkout <branchname> \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Checkout a branch for development
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.SS Logging options:
20.TP
21\fB\-v\fR, \fB\-\-verbose\fR
22show all output
23.TP
24\fB\-q\fR, \fB\-\-quiet\fR
25only show errors
26.PP
27Run `repo help checkout` to view the detailed manual.
28.SH DETAILS
29.PP
30The 'repo checkout' command checks out an existing branch that was previously
31created by 'repo start'.
32.PP
33The command is equivalent to:
34.IP
35repo forall [<project>...] \fB\-c\fR git checkout <branchname>
diff --git a/man/repo-cherry-pick.1 b/man/repo-cherry-pick.1
new file mode 100644
index 00000000..e7716c55
--- /dev/null
+++ b/man/repo-cherry-pick.1
@@ -0,0 +1,28 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo cherry-pick" "Repo Manual"
3.SH NAME
4repo \- repo cherry-pick - manual page for repo cherry-pick
5.SH SYNOPSIS
6.B repo
7\fI\,cherry-pick <sha1>\/\fR
8.SH DESCRIPTION
9Summary
10.PP
11Cherry\-pick a change.
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.PP
24Run `repo help cherry\-pick` to view the detailed manual.
25.SH DETAILS
26.PP
27\&'repo cherry\-pick' cherry\-picks a change from one branch to another. The change
28id will be updated, and a reference to the old change id will be added.
diff --git a/man/repo-diff.1 b/man/repo-diff.1
new file mode 100644
index 00000000..aff36d24
--- /dev/null
+++ b/man/repo-diff.1
@@ -0,0 +1,34 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo diff" "Repo Manual"
3.SH NAME
4repo \- repo diff - manual page for repo diff
5.SH SYNOPSIS
6.B repo
7\fI\,diff \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Show changes between commit and working tree
12.PP
13The \fB\-u\fR option causes 'repo diff' to generate diff output with file paths
14relative to the repository root, so the output can be applied
15to the Unix 'patch' command.
16.SH OPTIONS
17.TP
18\fB\-h\fR, \fB\-\-help\fR
19show this help message and exit
20.TP
21\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
22number of jobs to run in parallel (default: 4)
23.TP
24\fB\-u\fR, \fB\-\-absolute\fR
25paths are relative to the repository root
26.SS Logging options:
27.TP
28\fB\-v\fR, \fB\-\-verbose\fR
29show all output
30.TP
31\fB\-q\fR, \fB\-\-quiet\fR
32only show errors
33.PP
34Run `repo help diff` to view the detailed manual.
diff --git a/man/repo-diffmanifests.1 b/man/repo-diffmanifests.1
new file mode 100644
index 00000000..add50f17
--- /dev/null
+++ b/man/repo-diffmanifests.1
@@ -0,0 +1,61 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo diffmanifests" "Repo Manual"
3.SH NAME
4repo \- repo diffmanifests - manual page for repo diffmanifests
5.SH SYNOPSIS
6.B repo
7\fI\,diffmanifests manifest1.xml \/\fR[\fI\,manifest2.xml\/\fR] [\fI\,options\/\fR]
8.SH DESCRIPTION
9Summary
10.PP
11Manifest diff utility
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-\-raw\fR
18display raw diff
19.TP
20\fB\-\-no\-color\fR
21does not display the diff in color
22.TP
23\fB\-\-pretty\-format=\fR<FORMAT>
24print the log using a custom git pretty format string
25.SS Logging options:
26.TP
27\fB\-v\fR, \fB\-\-verbose\fR
28show all output
29.TP
30\fB\-q\fR, \fB\-\-quiet\fR
31only show errors
32.PP
33Run `repo help diffmanifests` to view the detailed manual.
34.SH DETAILS
35.PP
36The repo diffmanifests command shows differences between project revisions of
37manifest1 and manifest2. if manifest2 is not specified, current manifest.xml
38will be used instead. Both absolute and relative paths may be used for
39manifests. Relative paths start from project's ".repo/manifests" folder.
40.PP
41The \fB\-\-raw\fR option Displays the diff in a way that facilitates parsing, the
42project pattern will be <status> <path> <revision from> [<revision to>] and the
43commit pattern will be <status> <onelined log> with status values respectively :
44.IP
45A = Added project
46R = Removed project
47C = Changed project
48U = Project with unreachable revision(s) (revision(s) not found)
49.PP
50for project, and
51.IP
52A = Added commit
53R = Removed commit
54.PP
55for a commit.
56.PP
57Only changed projects may contain commits, and commit status always starts with
58a space, and are part of last printed project. Unreachable revisions may occur
59if project is not up to date or if repo has not been initialized with all the
60groups, in which case some projects won't be synced and their revisions won't be
61found.
diff --git a/man/repo-download.1 b/man/repo-download.1
new file mode 100644
index 00000000..cf7f767d
--- /dev/null
+++ b/man/repo-download.1
@@ -0,0 +1,44 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo download" "Repo Manual"
3.SH NAME
4repo \- repo download - manual page for repo download
5.SH SYNOPSIS
6.B repo
7\fI\,download {\/\fR[\fI\,project\/\fR] \fI\,change\/\fR[\fI\,/patchset\/\fR]\fI\,}\/\fR...
8.SH DESCRIPTION
9Summary
10.PP
11Download and checkout a change
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-b\fR BRANCH, \fB\-\-branch\fR=\fI\,BRANCH\/\fR
18create a new branch first
19.TP
20\fB\-c\fR, \fB\-\-cherry\-pick\fR
21cherry\-pick instead of checkout
22.TP
23\fB\-x\fR, \fB\-\-record\-origin\fR
24pass \fB\-x\fR when cherry\-picking
25.TP
26\fB\-r\fR, \fB\-\-revert\fR
27revert instead of checkout
28.TP
29\fB\-f\fR, \fB\-\-ff\-only\fR
30force fast\-forward merge
31.SS Logging options:
32.TP
33\fB\-v\fR, \fB\-\-verbose\fR
34show all output
35.TP
36\fB\-q\fR, \fB\-\-quiet\fR
37only show errors
38.PP
39Run `repo help download` to view the detailed manual.
40.SH DETAILS
41.PP
42The 'repo download' command downloads a change from the review system and makes
43it available in your project's local working directory. If no project is
44specified try to use current directory as a project.
diff --git a/man/repo-forall.1 b/man/repo-forall.1
new file mode 100644
index 00000000..194f4d20
--- /dev/null
+++ b/man/repo-forall.1
@@ -0,0 +1,127 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo forall" "Repo Manual"
3.SH NAME
4repo \- repo forall - manual page for repo forall
5.SH SYNOPSIS
6.B repo
7\fI\,forall \/\fR[\fI\,<project>\/\fR...] \fI\,-c <command> \/\fR[\fI\,<arg>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Run a shell command in each project
12.PP
13repo forall \fB\-r\fR str1 [str2] ... \fB\-c\fR <command> [<arg>...]
14.SH OPTIONS
15.TP
16\fB\-h\fR, \fB\-\-help\fR
17show this help message and exit
18.TP
19\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
20number of jobs to run in parallel (default: 4)
21.TP
22\fB\-r\fR, \fB\-\-regex\fR
23execute the command only on projects matching regex or
24wildcard expression
25.TP
26\fB\-i\fR, \fB\-\-inverse\-regex\fR
27execute the command only on projects not matching
28regex or wildcard expression
29.TP
30\fB\-g\fR GROUPS, \fB\-\-groups\fR=\fI\,GROUPS\/\fR
31execute the command only on projects matching the
32specified groups
33.TP
34\fB\-c\fR, \fB\-\-command\fR
35command (and arguments) to execute
36.TP
37\fB\-e\fR, \fB\-\-abort\-on\-errors\fR
38abort if a command exits unsuccessfully
39.TP
40\fB\-\-ignore\-missing\fR
41silently skip & do not exit non\-zero due missing
42checkouts
43.TP
44\fB\-\-interactive\fR
45force interactive usage
46.SS Logging options:
47.TP
48\fB\-v\fR, \fB\-\-verbose\fR
49show all output
50.TP
51\fB\-q\fR, \fB\-\-quiet\fR
52only show errors
53.TP
54\fB\-p\fR
55show project headers before output
56.PP
57Run `repo help forall` to view the detailed manual.
58.SH DETAILS
59.PP
60Executes the same shell command in each project.
61.PP
62The \fB\-r\fR option allows running the command only on projects matching regex or
63wildcard expression.
64.PP
65By default, projects are processed non\-interactively in parallel. If you want to
66run interactive commands, make sure to pass \fB\-\-interactive\fR to force \fB\-\-jobs\fR 1.
67While the processing order of projects is not guaranteed, the order of project
68output is stable.
69.PP
70Output Formatting
71.PP
72The \fB\-p\fR option causes 'repo forall' to bind pipes to the command's stdin, stdout
73and stderr streams, and pipe all output into a continuous stream that is
74displayed in a single pager session. Project headings are inserted before the
75output of each command is displayed. If the command produces no output in a
76project, no heading is displayed.
77.PP
78The formatting convention used by \fB\-p\fR is very suitable for some types of
79searching, e.g. `repo forall \fB\-p\fR \fB\-c\fR git log \fB\-SFoo\fR` will print all commits that
80add or remove references to Foo.
81.PP
82The \fB\-v\fR option causes 'repo forall' to display stderr messages if a command
83produces output only on stderr. Normally the \fB\-p\fR option causes command output to
84be suppressed until the command produces at least one byte of output on stdout.
85.PP
86Environment
87.PP
88pwd is the project's working directory. If the current client is a mirror
89client, then pwd is the Git repository.
90.PP
91REPO_PROJECT is set to the unique name of the project.
92.PP
93REPO_PATH is the path relative the the root of the client.
94.PP
95REPO_REMOTE is the name of the remote system from the manifest.
96.PP
97REPO_LREV is the name of the revision from the manifest, translated to a local
98tracking branch. If you need to pass the manifest revision to a locally executed
99git command, use REPO_LREV.
100.PP
101REPO_RREV is the name of the revision from the manifest, exactly as written in
102the manifest.
103.PP
104REPO_COUNT is the total number of projects being iterated.
105.PP
106REPO_I is the current (1\-based) iteration count. Can be used in conjunction with
107REPO_COUNT to add a simple progress indicator to your command.
108.PP
109REPO__* are any extra environment variables, specified by the "annotation"
110element under any project element. This can be useful for differentiating trees
111based on user\-specific criteria, or simply annotating tree details.
112.PP
113shell positional arguments ($1, $2, .., $#) are set to any arguments following
114<command>.
115.PP
116Example: to list projects:
117.IP
118repo forall \fB\-c\fR 'echo $REPO_PROJECT'
119.PP
120Notice that $REPO_PROJECT is quoted to ensure it is expanded in the context of
121running <command> instead of in the calling shell.
122.PP
123Unless \fB\-p\fR is used, stdin, stdout, stderr are inherited from the terminal and are
124not redirected.
125.PP
126If \fB\-e\fR is used, when a command exits unsuccessfully, 'repo forall' will abort
127without iterating through the remaining projects.
diff --git a/man/repo-gitc-delete.1 b/man/repo-gitc-delete.1
new file mode 100644
index 00000000..c84c6e45
--- /dev/null
+++ b/man/repo-gitc-delete.1
@@ -0,0 +1,31 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo gitc-delete" "Repo Manual"
3.SH NAME
4repo \- repo gitc-delete - manual page for repo gitc-delete
5.SH SYNOPSIS
6.B repo
7\fI\,gitc-delete\/\fR
8.SH DESCRIPTION
9Summary
10.PP
11Delete a GITC Client.
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-f\fR, \fB\-\-force\fR
18force the deletion (no prompt)
19.SS Logging options:
20.TP
21\fB\-v\fR, \fB\-\-verbose\fR
22show all output
23.TP
24\fB\-q\fR, \fB\-\-quiet\fR
25only show errors
26.PP
27Run `repo help gitc\-delete` to view the detailed manual.
28.SH DETAILS
29.PP
30This subcommand deletes the current GITC client, deleting the GITC manifest and
31all locally downloaded sources.
diff --git a/man/repo-gitc-init.1 b/man/repo-gitc-init.1
new file mode 100644
index 00000000..1d1b23a8
--- /dev/null
+++ b/man/repo-gitc-init.1
@@ -0,0 +1,146 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo gitc-init" "Repo Manual"
3.SH NAME
4repo \- repo gitc-init - manual page for repo gitc-init
5.SH SYNOPSIS
6.B repo
7\fI\,gitc-init \/\fR[\fI\,options\/\fR] [\fI\,client name\/\fR]
8.SH DESCRIPTION
9Summary
10.PP
11Initialize a GITC Client.
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.SS Manifest options:
24.TP
25\fB\-u\fR URL, \fB\-\-manifest\-url\fR=\fI\,URL\/\fR
26manifest repository location
27.TP
28\fB\-b\fR REVISION, \fB\-\-manifest\-branch\fR=\fI\,REVISION\/\fR
29manifest branch or revision (use HEAD for default)
30.TP
31\fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml
32initial manifest file
33.TP
34\fB\-g\fR GROUP, \fB\-\-groups\fR=\fI\,GROUP\/\fR
35restrict manifest projects to ones with specified
36group(s) [default|all|G1,G2,G3|G4,\-G5,\-G6]
37.TP
38\fB\-p\fR PLATFORM, \fB\-\-platform\fR=\fI\,PLATFORM\/\fR
39restrict manifest projects to ones with a specified
40platform group [auto|all|none|linux|darwin|...]
41.TP
42\fB\-\-submodules\fR
43sync any submodules associated with the manifest repo
44.SS Manifest (only) checkout options:
45.TP
46\fB\-\-current\-branch\fR
47fetch only current manifest branch from server
48.TP
49\fB\-\-no\-current\-branch\fR
50fetch all manifest branches from server
51.TP
52\fB\-\-tags\fR
53fetch tags in the manifest
54.TP
55\fB\-\-no\-tags\fR
56don't fetch tags in the manifest
57.SS Checkout modes:
58.TP
59\fB\-\-mirror\fR
60create a replica of the remote repositories rather
61than a client working directory
62.TP
63\fB\-\-archive\fR
64checkout an archive instead of a git repository for
65each project. See git archive.
66.TP
67\fB\-\-worktree\fR
68use git\-worktree to manage projects
69.SS Project checkout optimizations:
70.TP
71\fB\-\-reference\fR=\fI\,DIR\/\fR
72location of mirror directory
73.TP
74\fB\-\-dissociate\fR
75dissociate from reference mirrors after clone
76.TP
77\fB\-\-depth\fR=\fI\,DEPTH\/\fR
78create a shallow clone with given depth; see git clone
79.TP
80\fB\-\-partial\-clone\fR
81perform partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
82.TP
83\fB\-\-no\-partial\-clone\fR
84disable use of partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
85.TP
86\fB\-\-partial\-clone\-exclude\fR=\fI\,PARTIAL_CLONE_EXCLUDE\/\fR
87exclude the specified projects (a comma\-delimited
88project names) from partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
89.TP
90\fB\-\-clone\-filter\fR=\fI\,CLONE_FILTER\/\fR
91filter for use with \fB\-\-partial\-clone\fR [default:
92blob:none]
93.TP
94\fB\-\-use\-superproject\fR
95use the manifest superproject to sync projects
96.TP
97\fB\-\-no\-use\-superproject\fR
98disable use of manifest superprojects
99.TP
100\fB\-\-clone\-bundle\fR
101enable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS (default if
102not \fB\-\-partial\-clone\fR)
103.TP
104\fB\-\-no\-clone\-bundle\fR
105disable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS (default if
106\fB\-\-partial\-clone\fR)
107.SS repo Version options:
108.TP
109\fB\-\-repo\-url\fR=\fI\,URL\/\fR
110repo repository location ($REPO_URL)
111.TP
112\fB\-\-repo\-rev\fR=\fI\,REV\/\fR
113repo branch or revision ($REPO_REV)
114.TP
115\fB\-\-no\-repo\-verify\fR
116do not verify repo source code
117.SS Other options:
118.TP
119\fB\-\-config\-name\fR
120Always prompt for name/e\-mail
121.SS GITC options:
122.TP
123\fB\-f\fR MANIFEST_FILE, \fB\-\-manifest\-file\fR=\fI\,MANIFEST_FILE\/\fR
124Optional manifest file to use for this GITC client.
125.TP
126\fB\-c\fR GITC_CLIENT, \fB\-\-gitc\-client\fR=\fI\,GITC_CLIENT\/\fR
127Name of the gitc_client instance to create or modify.
128.PP
129Run `repo help gitc\-init` to view the detailed manual.
130.SH DETAILS
131.PP
132The 'repo gitc\-init' command is ran to initialize a new GITC client for use with
133the GITC file system.
134.PP
135This command will setup the client directory, initialize repo, just like repo
136init does, and then downloads the manifest collection and installs it in the
137\&.repo/directory of the GITC client.
138.PP
139Once this is done, a GITC manifest is generated by pulling the HEAD SHA for each
140project and generates the properly formatted XML file and installs it as
141\&.manifest in the GITC client directory.
142.PP
143The \fB\-c\fR argument is required to specify the GITC client name.
144.PP
145The optional \fB\-f\fR argument can be used to specify the manifest file to use for
146this GITC client.
diff --git a/man/repo-grep.1 b/man/repo-grep.1
new file mode 100644
index 00000000..fb515a7b
--- /dev/null
+++ b/man/repo-grep.1
@@ -0,0 +1,118 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo grep" "Repo Manual"
3.SH NAME
4repo \- repo grep - manual page for repo grep
5.SH SYNOPSIS
6.B repo
7\fI\,grep {pattern | -e pattern} \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Print lines matching a pattern
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.SS Logging options:
20.TP
21\fB\-\-verbose\fR
22show all output
23.TP
24\fB\-q\fR, \fB\-\-quiet\fR
25only show errors
26.SS Sources:
27.TP
28\fB\-\-cached\fR
29Search the index, instead of the work tree
30.TP
31\fB\-r\fR TREEish, \fB\-\-revision\fR=\fI\,TREEish\/\fR
32Search TREEish, instead of the work tree
33.SS Pattern:
34.TP
35\fB\-e\fR PATTERN
36Pattern to search for
37.TP
38\fB\-i\fR, \fB\-\-ignore\-case\fR
39Ignore case differences
40.TP
41\fB\-a\fR, \fB\-\-text\fR
42Process binary files as if they were text
43.TP
44\fB\-I\fR
45Don't match the pattern in binary files
46.TP
47\fB\-w\fR, \fB\-\-word\-regexp\fR
48Match the pattern only at word boundaries
49.TP
50\fB\-v\fR, \fB\-\-invert\-match\fR
51Select non\-matching lines
52.TP
53\fB\-G\fR, \fB\-\-basic\-regexp\fR
54Use POSIX basic regexp for patterns (default)
55.TP
56\fB\-E\fR, \fB\-\-extended\-regexp\fR
57Use POSIX extended regexp for patterns
58.TP
59\fB\-F\fR, \fB\-\-fixed\-strings\fR
60Use fixed strings (not regexp) for pattern
61.SS Pattern Grouping:
62.TP
63\fB\-\-all\-match\fR
64Limit match to lines that have all patterns
65.TP
66\fB\-\-and\fR, \fB\-\-or\fR, \fB\-\-not\fR
67Boolean operators to combine patterns
68.TP
69\-(, \-)
70Boolean operator grouping
71.SS Output:
72.TP
73\fB\-n\fR
74Prefix the line number to matching lines
75.TP
76\fB\-C\fR CONTEXT
77Show CONTEXT lines around match
78.TP
79\fB\-B\fR CONTEXT
80Show CONTEXT lines before match
81.TP
82\fB\-A\fR CONTEXT
83Show CONTEXT lines after match
84.TP
85\fB\-l\fR, \fB\-\-name\-only\fR, \fB\-\-files\-with\-matches\fR
86Show only file names containing matching lines
87.TP
88\fB\-L\fR, \fB\-\-files\-without\-match\fR
89Show only file names not containing matching lines
90.PP
91Run `repo help grep` to view the detailed manual.
92.SH DETAILS
93.PP
94Search for the specified patterns in all project files.
95.PP
96Boolean Options
97.PP
98The following options can appear as often as necessary to express the pattern to
99locate:
100.HP
101\fB\-e\fR PATTERN
102.HP
103\fB\-\-and\fR, \fB\-\-or\fR, \fB\-\-not\fR, \-(, \-)
104.PP
105Further, the \fB\-r\fR/\-\-revision option may be specified multiple times in order to
106scan multiple trees. If the same file matches in more than one tree, only the
107first result is reported, prefixed by the revision name it was found under.
108.PP
109Examples
110.PP
111Look for a line that has '#define' and either 'MAX_PATH or 'PATH_MAX':
112.IP
113repo grep \fB\-e\fR '#define' \fB\-\-and\fR \-\e( \fB\-e\fR MAX_PATH \fB\-e\fR PATH_MAX \e)
114.PP
115Look for a line that has 'NODE' or 'Unexpected' in files that contain a line
116that matches both expressions:
117.IP
118repo grep \fB\-\-all\-match\fR \fB\-e\fR NODE \fB\-e\fR Unexpected
diff --git a/man/repo-help.1 b/man/repo-help.1
new file mode 100644
index 00000000..d6da3c51
--- /dev/null
+++ b/man/repo-help.1
@@ -0,0 +1,33 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo help" "Repo Manual"
3.SH NAME
4repo \- repo help - manual page for repo help
5.SH SYNOPSIS
6.B repo
7\fI\,help \/\fR[\fI\,--all|command\/\fR]
8.SH DESCRIPTION
9Summary
10.PP
11Display detailed help on a command
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-a\fR, \fB\-\-all\fR
18show the complete list of commands
19.TP
20\fB\-\-help\-all\fR
21show the \fB\-\-help\fR of all commands
22.SS Logging options:
23.TP
24\fB\-v\fR, \fB\-\-verbose\fR
25show all output
26.TP
27\fB\-q\fR, \fB\-\-quiet\fR
28only show errors
29.PP
30Run `repo help help` to view the detailed manual.
31.SH DETAILS
32.PP
33Displays detailed usage information about a command.
diff --git a/man/repo-info.1 b/man/repo-info.1
new file mode 100644
index 00000000..cf7c17b8
--- /dev/null
+++ b/man/repo-info.1
@@ -0,0 +1,40 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo info" "Repo Manual"
3.SH NAME
4repo \- repo info - manual page for repo info
5.SH SYNOPSIS
6.B repo
7\fI\,info \/\fR[\fI\,-dl\/\fR] [\fI\,-o \/\fR[\fI\,-c\/\fR]] [\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Get info on the manifest branch, current branch or unmerged branches
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-d\fR, \fB\-\-diff\fR
18show full info and commit diff including remote
19branches
20.TP
21\fB\-o\fR, \fB\-\-overview\fR
22show overview of all local commits
23.TP
24\fB\-c\fR, \fB\-\-current\-branch\fR
25consider only checked out branches
26.TP
27\fB\-\-no\-current\-branch\fR
28consider all local branches
29.TP
30\fB\-l\fR, \fB\-\-local\-only\fR
31disable all remote operations
32.SS Logging options:
33.TP
34\fB\-v\fR, \fB\-\-verbose\fR
35show all output
36.TP
37\fB\-q\fR, \fB\-\-quiet\fR
38only show errors
39.PP
40Run `repo help info` to view the detailed manual.
diff --git a/man/repo-init.1 b/man/repo-init.1
new file mode 100644
index 00000000..e860f95d
--- /dev/null
+++ b/man/repo-init.1
@@ -0,0 +1,160 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo init" "Repo Manual"
3.SH NAME
4repo \- repo init - manual page for repo init
5.SH SYNOPSIS
6.B repo
7\fI\,init \/\fR[\fI\,options\/\fR] [\fI\,manifest url\/\fR]
8.SH DESCRIPTION
9Summary
10.PP
11Initialize a repo client checkout in the current directory
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.SS Manifest options:
24.TP
25\fB\-u\fR URL, \fB\-\-manifest\-url\fR=\fI\,URL\/\fR
26manifest repository location
27.TP
28\fB\-b\fR REVISION, \fB\-\-manifest\-branch\fR=\fI\,REVISION\/\fR
29manifest branch or revision (use HEAD for default)
30.TP
31\fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml
32initial manifest file
33.TP
34\fB\-g\fR GROUP, \fB\-\-groups\fR=\fI\,GROUP\/\fR
35restrict manifest projects to ones with specified
36group(s) [default|all|G1,G2,G3|G4,\-G5,\-G6]
37.TP
38\fB\-p\fR PLATFORM, \fB\-\-platform\fR=\fI\,PLATFORM\/\fR
39restrict manifest projects to ones with a specified
40platform group [auto|all|none|linux|darwin|...]
41.TP
42\fB\-\-submodules\fR
43sync any submodules associated with the manifest repo
44.SS Manifest (only) checkout options:
45.TP
46\fB\-c\fR, \fB\-\-current\-branch\fR
47fetch only current manifest branch from server
48.TP
49\fB\-\-no\-current\-branch\fR
50fetch all manifest branches from server
51.TP
52\fB\-\-tags\fR
53fetch tags in the manifest
54.TP
55\fB\-\-no\-tags\fR
56don't fetch tags in the manifest
57.SS Checkout modes:
58.TP
59\fB\-\-mirror\fR
60create a replica of the remote repositories rather
61than a client working directory
62.TP
63\fB\-\-archive\fR
64checkout an archive instead of a git repository for
65each project. See git archive.
66.TP
67\fB\-\-worktree\fR
68use git\-worktree to manage projects
69.SS Project checkout optimizations:
70.TP
71\fB\-\-reference\fR=\fI\,DIR\/\fR
72location of mirror directory
73.TP
74\fB\-\-dissociate\fR
75dissociate from reference mirrors after clone
76.TP
77\fB\-\-depth\fR=\fI\,DEPTH\/\fR
78create a shallow clone with given depth; see git clone
79.TP
80\fB\-\-partial\-clone\fR
81perform partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
82.TP
83\fB\-\-no\-partial\-clone\fR
84disable use of partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
85.TP
86\fB\-\-partial\-clone\-exclude\fR=\fI\,PARTIAL_CLONE_EXCLUDE\/\fR
87exclude the specified projects (a comma\-delimited
88project names) from partial clone (https://gitscm.com/docs/gitrepositorylayout#_code_partialclone_code)
89.TP
90\fB\-\-clone\-filter\fR=\fI\,CLONE_FILTER\/\fR
91filter for use with \fB\-\-partial\-clone\fR [default:
92blob:none]
93.TP
94\fB\-\-use\-superproject\fR
95use the manifest superproject to sync projects
96.TP
97\fB\-\-no\-use\-superproject\fR
98disable use of manifest superprojects
99.TP
100\fB\-\-clone\-bundle\fR
101enable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS (default if
102not \fB\-\-partial\-clone\fR)
103.TP
104\fB\-\-no\-clone\-bundle\fR
105disable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS (default if
106\fB\-\-partial\-clone\fR)
107.SS repo Version options:
108.TP
109\fB\-\-repo\-url\fR=\fI\,URL\/\fR
110repo repository location ($REPO_URL)
111.TP
112\fB\-\-repo\-rev\fR=\fI\,REV\/\fR
113repo branch or revision ($REPO_REV)
114.TP
115\fB\-\-no\-repo\-verify\fR
116do not verify repo source code
117.SS Other options:
118.TP
119\fB\-\-config\-name\fR
120Always prompt for name/e\-mail
121.PP
122Run `repo help init` to view the detailed manual.
123.SH DETAILS
124.PP
125The 'repo init' command is run once to install and initialize repo. The latest
126repo source code and manifest collection is downloaded from the server and is
127installed in the .repo/ directory in the current working directory.
128.PP
129When creating a new checkout, the manifest URL is the only required setting. It
130may be specified using the \fB\-\-manifest\-url\fR option, or as the first optional
131argument.
132.PP
133The optional \fB\-b\fR argument can be used to select the manifest branch to checkout
134and use. If no branch is specified, the remote's default branch is used. This is
135equivalent to using \fB\-b\fR HEAD.
136.PP
137The optional \fB\-m\fR argument can be used to specify an alternate manifest to be
138used. If no manifest is specified, the manifest default.xml will be used.
139.PP
140The \fB\-\-reference\fR option can be used to point to a directory that has the content
141of a \fB\-\-mirror\fR sync. This will make the working directory use as much data as
142possible from the local reference directory when fetching from the server. This
143will make the sync go a lot faster by reducing data traffic on the network.
144.PP
145The \fB\-\-dissociate\fR option can be used to borrow the objects from the directory
146specified with the \fB\-\-reference\fR option only to reduce network transfer, and stop
147borrowing from them after a first clone is made by making necessary local copies
148of borrowed objects.
149.PP
150The \fB\-\-no\-clone\-bundle\fR option disables any attempt to use \fI\,$URL/clone.bundle\/\fP to
151bootstrap a new Git repository from a resumeable bundle file on a content
152delivery network. This may be necessary if there are problems with the local
153Python HTTP client or proxy configuration, but the Git binary works.
154.PP
155Switching Manifest Branches
156.PP
157To switch to another manifest branch, `repo init \fB\-b\fR otherbranch` may be used in
158an existing client. However, as this only updates the manifest, a subsequent
159`repo sync` (or `repo sync \fB\-d\fR`) is necessary to update the working directory
160files.
diff --git a/man/repo-list.1 b/man/repo-list.1
new file mode 100644
index 00000000..a86315ae
--- /dev/null
+++ b/man/repo-list.1
@@ -0,0 +1,57 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo list" "Repo Manual"
3.SH NAME
4repo \- repo list - manual page for repo list
5.SH SYNOPSIS
6.B repo
7\fI\,list \/\fR[\fI\,-f\/\fR] [\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11List projects and their associated directories
12.PP
13repo list [\-f] \fB\-r\fR str1 [str2]...
14.SH OPTIONS
15.TP
16\fB\-h\fR, \fB\-\-help\fR
17show this help message and exit
18.TP
19\fB\-r\fR, \fB\-\-regex\fR
20filter the project list based on regex or wildcard
21matching of strings
22.TP
23\fB\-g\fR GROUPS, \fB\-\-groups\fR=\fI\,GROUPS\/\fR
24filter the project list based on the groups the
25project is in
26.TP
27\fB\-a\fR, \fB\-\-all\fR
28show projects regardless of checkout state
29.TP
30\fB\-f\fR, \fB\-\-fullpath\fR
31display the full work tree path instead of the
32relative path
33.TP
34\fB\-n\fR, \fB\-\-name\-only\fR
35display only the name of the repository
36.TP
37\fB\-p\fR, \fB\-\-path\-only\fR
38display only the path of the repository
39.SS Logging options:
40.TP
41\fB\-v\fR, \fB\-\-verbose\fR
42show all output
43.TP
44\fB\-q\fR, \fB\-\-quiet\fR
45only show errors
46.PP
47Run `repo help list` to view the detailed manual.
48.SH DETAILS
49.PP
50List all projects; pass '.' to list the project for the cwd.
51.PP
52By default, only projects that currently exist in the checkout are shown. If you
53want to list all projects (using the specified filter settings), use the \fB\-\-all\fR
54option. If you want to show all projects regardless of the manifest groups, then
55also pass \fB\-\-groups\fR all.
56.PP
57This is similar to running: repo forall \fB\-c\fR 'echo "$REPO_PATH : $REPO_PROJECT"'.
diff --git a/man/repo-manifest.1 b/man/repo-manifest.1
new file mode 100644
index 00000000..e42cc42e
--- /dev/null
+++ b/man/repo-manifest.1
@@ -0,0 +1,545 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo manifest" "Repo Manual"
3.SH NAME
4repo \- repo manifest - manual page for repo manifest
5.SH SYNOPSIS
6.B repo
7\fI\,manifest \/\fR[\fI\,-o {-|NAME.xml}\/\fR] [\fI\,-m MANIFEST.xml\/\fR] [\fI\,-r\/\fR]
8.SH DESCRIPTION
9Summary
10.PP
11Manifest inspection utility
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-r\fR, \fB\-\-revision\-as\-HEAD\fR
18save revisions as current HEAD
19.TP
20\fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml
21temporary manifest to use for this sync
22.TP
23\fB\-\-suppress\-upstream\-revision\fR
24if in \fB\-r\fR mode, do not write the upstream field (only
25of use if the branch names for a sha1 manifest are
26sensitive)
27.TP
28\fB\-\-suppress\-dest\-branch\fR
29if in \fB\-r\fR mode, do not write the dest\-branch field
30(only of use if the branch names for a sha1 manifest
31are sensitive)
32.TP
33\fB\-\-json\fR
34output manifest in JSON format (experimental)
35.TP
36\fB\-\-pretty\fR
37format output for humans to read
38.TP
39\fB\-o\fR \-|NAME.xml, \fB\-\-output\-file\fR=\fI\,\-\/\fR|NAME.xml
40file to save the manifest to
41.SS Logging options:
42.TP
43\fB\-v\fR, \fB\-\-verbose\fR
44show all output
45.TP
46\fB\-q\fR, \fB\-\-quiet\fR
47only show errors
48.PP
49Run `repo help manifest` to view the detailed manual.
50.SH DETAILS
51.PP
52With the \fB\-o\fR option, exports the current manifest for inspection. The manifest
53and (if present) local_manifests/ are combined together to produce a single
54manifest file. This file can be stored in a Git repository for use during future
55\&'repo init' invocations.
56.PP
57The \fB\-r\fR option can be used to generate a manifest file with project revisions set
58to the current commit hash. These are known as "revision locked manifests", as
59they don't follow a particular branch. In this case, the 'upstream' attribute is
60set to the ref we were on when the manifest was generated. The 'dest\-branch'
61attribute is set to indicate the remote ref to push changes to via 'repo
62upload'.
63.PP
64repo Manifest Format
65.PP
66A repo manifest describes the structure of a repo client; that is the
67directories that are visible and where they should be obtained from with git.
68.PP
69The basic structure of a manifest is a bare Git repository holding a single
70`default.xml` XML file in the top level directory.
71.PP
72Manifests are inherently version controlled, since they are kept within a Git
73repository. Updates to manifests are automatically obtained by clients during
74`repo sync`.
75.PP
76[TOC]
77.PP
78XML File Format
79.PP
80A manifest XML file (e.g. `default.xml`) roughly conforms to the following DTD:
81.PP
82```xml <!DOCTYPE manifest [
83.TP
84<!ELEMENT manifest (notice?,
85remote*,
86default?,
87manifest\-server?,
88remove\-project*,
89project*,
90extend\-project*,
91repo\-hooks?,
92superproject?,
93contactinfo?,
94include*)>
95.IP
96<!ELEMENT notice (#PCDATA)>
97.IP
98<!ELEMENT remote EMPTY>
99<!ATTLIST remote name ID #REQUIRED>
100<!ATTLIST remote alias CDATA #IMPLIED>
101<!ATTLIST remote fetch CDATA #REQUIRED>
102<!ATTLIST remote pushurl CDATA #IMPLIED>
103<!ATTLIST remote review CDATA #IMPLIED>
104<!ATTLIST remote revision CDATA #IMPLIED>
105.IP
106<!ELEMENT default EMPTY>
107<!ATTLIST default remote IDREF #IMPLIED>
108<!ATTLIST default revision CDATA #IMPLIED>
109<!ATTLIST default dest\-branch CDATA #IMPLIED>
110<!ATTLIST default upstream CDATA #IMPLIED>
111<!ATTLIST default sync\-j CDATA #IMPLIED>
112<!ATTLIST default sync\-c CDATA #IMPLIED>
113<!ATTLIST default sync\-s CDATA #IMPLIED>
114<!ATTLIST default sync\-tags CDATA #IMPLIED>
115.IP
116<!ELEMENT manifest\-server EMPTY>
117<!ATTLIST manifest\-server url CDATA #REQUIRED>
118.TP
119<!ELEMENT project (annotation*,
120project*,
121copyfile*,
122linkfile*)>
123.TP
124<!ATTLIST project name
125CDATA #REQUIRED>
126.TP
127<!ATTLIST project path
128CDATA #IMPLIED>
129.TP
130<!ATTLIST project remote
131IDREF #IMPLIED>
132.TP
133<!ATTLIST project revision
134CDATA #IMPLIED>
135.IP
136<!ATTLIST project dest\-branch CDATA #IMPLIED>
137<!ATTLIST project groups CDATA #IMPLIED>
138<!ATTLIST project sync\-c CDATA #IMPLIED>
139<!ATTLIST project sync\-s CDATA #IMPLIED>
140<!ATTLIST project sync\-tags CDATA #IMPLIED>
141<!ATTLIST project upstream CDATA #IMPLIED>
142<!ATTLIST project clone\-depth CDATA #IMPLIED>
143<!ATTLIST project force\-path CDATA #IMPLIED>
144.IP
145<!ELEMENT annotation EMPTY>
146<!ATTLIST annotation name CDATA #REQUIRED>
147<!ATTLIST annotation value CDATA #REQUIRED>
148<!ATTLIST annotation keep CDATA "true">
149.IP
150<!ELEMENT copyfile EMPTY>
151<!ATTLIST copyfile src CDATA #REQUIRED>
152<!ATTLIST copyfile dest CDATA #REQUIRED>
153.IP
154<!ELEMENT linkfile EMPTY>
155<!ATTLIST linkfile src CDATA #REQUIRED>
156<!ATTLIST linkfile dest CDATA #REQUIRED>
157.IP
158<!ELEMENT extend\-project EMPTY>
159<!ATTLIST extend\-project name CDATA #REQUIRED>
160<!ATTLIST extend\-project path CDATA #IMPLIED>
161<!ATTLIST extend\-project groups CDATA #IMPLIED>
162<!ATTLIST extend\-project revision CDATA #IMPLIED>
163<!ATTLIST extend\-project remote CDATA #IMPLIED>
164.IP
165<!ELEMENT remove\-project EMPTY>
166<!ATTLIST remove\-project name CDATA #REQUIRED>
167<!ATTLIST remove\-project optional CDATA #IMPLIED>
168.IP
169<!ELEMENT repo\-hooks EMPTY>
170<!ATTLIST repo\-hooks in\-project CDATA #REQUIRED>
171<!ATTLIST repo\-hooks enabled\-list CDATA #REQUIRED>
172.IP
173<!ELEMENT superproject EMPTY>
174<!ATTLIST superproject name CDATA #REQUIRED>
175<!ATTLIST superproject remote IDREF #IMPLIED>
176.IP
177<!ELEMENT contactinfo EMPTY>
178<!ATTLIST contactinfo bugurl CDATA #REQUIRED>
179.IP
180<!ELEMENT include EMPTY>
181<!ATTLIST include name CDATA #REQUIRED>
182<!ATTLIST include groups CDATA #IMPLIED>
183.PP
184]>
185```
186.PP
187For compatibility purposes across repo releases, all unknown elements are
188silently ignored. However, repo reserves all possible names for itself for
189future use. If you want to use custom elements, the `x\-*` namespace is reserved
190for that purpose, and repo guarantees to never allocate any corresponding names.
191.PP
192A description of the elements and their attributes follows.
193.PP
194Element manifest
195.PP
196The root element of the file.
197.PP
198Element notice
199.PP
200Arbitrary text that is displayed to users whenever `repo sync` finishes. The
201content is simply passed through as it exists in the manifest.
202.PP
203Element remote
204.PP
205One or more remote elements may be specified. Each remote element specifies a
206Git URL shared by one or more projects and (optionally) the Gerrit review server
207those projects upload changes through.
208.PP
209Attribute `name`: A short name unique to this manifest file. The name specified
210here is used as the remote name in each project's .git/config, and is therefore
211automatically available to commands like `git fetch`, `git remote`, `git pull`
212and `git push`.
213.PP
214Attribute `alias`: The alias, if specified, is used to override `name` to be set
215as the remote name in each project's .git/config. Its value can be duplicated
216while attribute `name` has to be unique in the manifest file. This helps each
217project to be able to have same remote name which actually points to different
218remote url.
219.PP
220Attribute `fetch`: The Git URL prefix for all projects which use this remote.
221Each project's name is appended to this prefix to form the actual URL used to
222clone the project.
223.PP
224Attribute `pushurl`: The Git "push" URL prefix for all projects which use this
225remote. Each project's name is appended to this prefix to form the actual URL
226used to "git push" the project. This attribute is optional; if not specified
227then "git push" will use the same URL as the `fetch` attribute.
228.PP
229Attribute `review`: Hostname of the Gerrit server where reviews are uploaded to
230by `repo upload`. This attribute is optional; if not specified then `repo
231upload` will not function.
232.PP
233Attribute `revision`: Name of a Git branch (e.g. `main` or `refs/heads/main`).
234Remotes with their own revision will override the default revision.
235.PP
236Element default
237.PP
238At most one default element may be specified. Its remote and revision attributes
239are used when a project element does not specify its own remote or revision
240attribute.
241.PP
242Attribute `remote`: Name of a previously defined remote element. Project
243elements lacking a remote attribute of their own will use this remote.
244.PP
245Attribute `revision`: Name of a Git branch (e.g. `main` or `refs/heads/main`).
246Project elements lacking their own revision attribute will use this revision.
247.PP
248Attribute `dest\-branch`: Name of a Git branch (e.g. `main`). Project elements
249not setting their own `dest\-branch` will inherit this value. If this value is
250not set, projects will use `revision` by default instead.
251.PP
252Attribute `upstream`: Name of the Git ref in which a sha1 can be found. Used
253when syncing a revision locked manifest in \fB\-c\fR mode to avoid having to sync the
254entire ref space. Project elements not setting their own `upstream` will inherit
255this value.
256.PP
257Attribute `sync\-j`: Number of parallel jobs to use when synching.
258.PP
259Attribute `sync\-c`: Set to true to only sync the given Git branch (specified in
260the `revision` attribute) rather than the whole ref space. Project elements
261lacking a sync\-c element of their own will use this value.
262.PP
263Attribute `sync\-s`: Set to true to also sync sub\-projects.
264.PP
265Attribute `sync\-tags`: Set to false to only sync the given Git branch (specified
266in the `revision` attribute) rather than the other ref tags.
267.PP
268Element manifest\-server
269.PP
270At most one manifest\-server may be specified. The url attribute is used to
271specify the URL of a manifest server, which is an XML RPC service.
272.PP
273The manifest server should implement the following RPC methods:
274.IP
275GetApprovedManifest(branch, target)
276.PP
277Return a manifest in which each project is pegged to a known good revision for
278the current branch and target. This is used by repo sync when the \fB\-\-smart\-sync\fR
279option is given.
280.PP
281The target to use is defined by environment variables TARGET_PRODUCT and
282TARGET_BUILD_VARIANT. These variables are used to create a string of the form
283$TARGET_PRODUCT\-$TARGET_BUILD_VARIANT, e.g. passion\-userdebug. If one of those
284variables or both are not present, the program will call GetApprovedManifest
285without the target parameter and the manifest server should choose a reasonable
286default target.
287.IP
288GetManifest(tag)
289.PP
290Return a manifest in which each project is pegged to the revision at the
291specified tag. This is used by repo sync when the \fB\-\-smart\-tag\fR option is given.
292.PP
293Element project
294.PP
295One or more project elements may be specified. Each element describes a single
296Git repository to be cloned into the repo client workspace. You may specify
297Git\-submodules by creating a nested project. Git\-submodules will be
298automatically recognized and inherit their parent's attributes, but those may be
299overridden by an explicitly specified project element.
300.PP
301Attribute `name`: A unique name for this project. The project's name is appended
302onto its remote's fetch URL to generate the actual URL to configure the Git
303remote with. The URL gets formed as:
304.IP
305${remote_fetch}/${project_name}.git
306.PP
307where ${remote_fetch} is the remote's fetch attribute and ${project_name} is the
308project's name attribute. The suffix ".git" is always appended as repo assumes
309the upstream is a forest of bare Git repositories. If the project has a parent
310element, its name will be prefixed by the parent's.
311.PP
312The project name must match the name Gerrit knows, if Gerrit is being used for
313code reviews.
314.PP
315"name" must not be empty, and may not be an absolute path or use "." or ".."
316path components. It is always interpreted relative to the remote's fetch
317settings, so if a different base path is needed, declare a different remote with
318the new settings needed. These restrictions are not enforced for [Local
319Manifests].
320.PP
321Attribute `path`: An optional path relative to the top directory of the repo
322client where the Git working directory for this project should be placed. If not
323supplied the project "name" is used. If the project has a parent element, its
324path will be prefixed by the parent's.
325.PP
326"path" may not be an absolute path or use "." or ".." path components. These
327restrictions are not enforced for [Local Manifests].
328.PP
329If you want to place files into the root of the checkout (e.g. a README or
330Makefile or another build script), use the [copyfile] or [linkfile] elements
331instead.
332.PP
333Attribute `remote`: Name of a previously defined remote element. If not supplied
334the remote given by the default element is used.
335.PP
336Attribute `revision`: Name of the Git branch the manifest wants to track for
337this project. Names can be relative to refs/heads (e.g. just "main") or absolute
338(e.g. "refs/heads/main"). Tags and/or explicit SHA\-1s should work in theory, but
339have not been extensively tested. If not supplied the revision given by the
340remote element is used if applicable, else the default element is used.
341.PP
342Attribute `dest\-branch`: Name of a Git branch (e.g. `main`). When using `repo
343upload`, changes will be submitted for code review on this branch. If
344unspecified both here and in the default element, `revision` is used instead.
345.PP
346Attribute `groups`: List of groups to which this project belongs, whitespace or
347comma separated. All projects belong to the group "all", and each project
348automatically belongs to a group of its name:`name` and path:`path`. E.g. for
349`<project name="monkeys" path="barrel\-of"/>`, that project definition is
350implicitly in the following manifest groups: default, name:monkeys, and
351path:barrel\-of. If you place a project in the group "notdefault", it will not be
352automatically downloaded by repo. If the project has a parent element, the
353`name` and `path` here are the prefixed ones.
354.PP
355Attribute `sync\-c`: Set to true to only sync the given Git branch (specified in
356the `revision` attribute) rather than the whole ref space.
357.PP
358Attribute `sync\-s`: Set to true to also sync sub\-projects.
359.PP
360Attribute `upstream`: Name of the Git ref in which a sha1 can be found. Used
361when syncing a revision locked manifest in \fB\-c\fR mode to avoid having to sync the
362entire ref space.
363.PP
364Attribute `clone\-depth`: Set the depth to use when fetching this project. If
365specified, this value will override any value given to repo init with the
366\fB\-\-depth\fR option on the command line.
367.PP
368Attribute `force\-path`: Set to true to force this project to create the local
369mirror repository according to its `path` attribute (if supplied) rather than
370the `name` attribute. This attribute only applies to the local mirrors syncing,
371it will be ignored when syncing the projects in a client working directory.
372.PP
373Element extend\-project
374.PP
375Modify the attributes of the named project.
376.PP
377This element is mostly useful in a local manifest file, to modify the attributes
378of an existing project without completely replacing the existing project
379definition. This makes the local manifest more robust against changes to the
380original manifest.
381.PP
382Attribute `path`: If specified, limit the change to projects checked out at the
383specified path, rather than all projects with the given name.
384.PP
385Attribute `groups`: List of additional groups to which this project belongs.
386Same syntax as the corresponding element of `project`.
387.PP
388Attribute `revision`: If specified, overrides the revision of the original
389project. Same syntax as the corresponding element of `project`.
390.PP
391Attribute `remote`: If specified, overrides the remote of the original project.
392Same syntax as the corresponding element of `project`.
393.PP
394Element annotation
395.PP
396Zero or more annotation elements may be specified as children of a project
397element. Each element describes a name\-value pair that will be exported into
398each project's environment during a 'forall' command, prefixed with REPO__. In
399addition, there is an optional attribute "keep" which accepts the case
400insensitive values "true" (default) or "false". This attribute determines
401whether or not the annotation will be kept when exported with the manifest
402subcommand.
403.PP
404Element copyfile
405.PP
406Zero or more copyfile elements may be specified as children of a project
407element. Each element describes a src\-dest pair of files; the "src" file will be
408copied to the "dest" place during `repo sync` command.
409.PP
410"src" is project relative, "dest" is relative to the top of the tree. Copying
411from paths outside of the project or to paths outside of the repo client is not
412allowed.
413.PP
414"src" and "dest" must be files. Directories or symlinks are not allowed.
415Intermediate paths must not be symlinks either.
416.PP
417Parent directories of "dest" will be automatically created if missing.
418.PP
419Element linkfile
420.PP
421It's just like copyfile and runs at the same time as copyfile but instead of
422copying it creates a symlink.
423.PP
424The symlink is created at "dest" (relative to the top of the tree) and points to
425the path specified by "src" which is a path in the project.
426.PP
427Parent directories of "dest" will be automatically created if missing.
428.PP
429The symlink target may be a file or directory, but it may not point outside of
430the repo client.
431.PP
432Element remove\-project
433.PP
434Deletes the named project from the internal manifest table, possibly allowing a
435subsequent project element in the same manifest file to replace the project with
436a different source.
437.PP
438This element is mostly useful in a local manifest file, where the user can
439remove a project, and possibly replace it with their own definition.
440.PP
441Attribute `optional`: Set to true to ignore remove\-project elements with no
442matching `project` element.
443.PP
444Element repo\-hooks
445.PP
446NB: See the [practical documentation](./repo\-hooks.md) for using repo hooks.
447.PP
448Only one repo\-hooks element may be specified at a time. Attempting to redefine
449it will fail to parse.
450.PP
451Attribute `in\-project`: The project where the hooks are defined. The value must
452match the `name` attribute (**not** the `path` attribute) of a previously
453defined `project` element.
454.PP
455Attribute `enabled\-list`: List of hooks to use, whitespace or comma separated.
456.PP
457Element superproject
458.PP
459*** *Note*: This is currently a WIP. ***
460.PP
461NB: See the [git superprojects documentation](
462https://en.wikibooks.org/wiki/Git/Submodules_and_Superprojects) for background
463information.
464.PP
465This element is used to specify the URL of the superproject. It has "name" and
466"remote" as atrributes. Only "name" is required while the others have reasonable
467defaults. At most one superproject may be specified. Attempting to redefine it
468will fail to parse.
469.PP
470Attribute `name`: A unique name for the superproject. This attribute has the
471same meaning as project's name attribute. See the [element
472project](#element\-project) for more information.
473.PP
474Attribute `remote`: Name of a previously defined remote element. If not supplied
475the remote given by the default element is used.
476.PP
477Element contactinfo
478.PP
479*** *Note*: This is currently a WIP. ***
480.PP
481This element is used to let manifest authors self\-register contact info. It has
482"bugurl" as a required atrribute. This element can be repeated, and any later
483entries will clobber earlier ones. This would allow manifest authors who extend
484manifests to specify their own contact info.
485.PP
486Attribute `bugurl`: The URL to file a bug against the manifest owner.
487.PP
488Element include
489.PP
490This element provides the capability of including another manifest file into the
491originating manifest. Normal rules apply for the target manifest to include \- it
492must be a usable manifest on its own.
493.PP
494Attribute `name`: the manifest to include, specified relative to the manifest
495repository's root.
496.PP
497"name" may not be an absolute path or use "." or ".." path components. These
498restrictions are not enforced for [Local Manifests].
499.PP
500Attribute `groups`: List of additional groups to which all projects in the
501included manifest belong. This appends and recurses, meaning all projects in
502sub\-manifests carry all parent include groups. Same syntax as the corresponding
503element of `project`.
504.PP
505Local Manifests
506.PP
507Additional remotes and projects may be added through local manifest files stored
508in `$TOP_DIR/.repo/local_manifests/*.xml`.
509.PP
510For example:
511.IP
512\f(CW$ ls .repo/local_manifests\fR
513.IP
514local_manifest.xml
515another_local_manifest.xml
516.IP
517\f(CW$ cat .repo/local_manifests/local_manifest.xml\fR
518.IP
519<?xml version="1.0" encoding="UTF\-8"?>
520<manifest>
521.IP
522<project path="manifest"
523.IP
524name="tools/manifest" />
525.IP
526<project path="platform\-manifest"
527.IP
528name="platform/manifest" />
529.IP
530</manifest>
531.PP
532Users may add projects to the local manifest(s) prior to a `repo sync`
533invocation, instructing repo to automatically download and manage these extra
534projects.
535.PP
536Manifest files stored in `$TOP_DIR/.repo/local_manifests/*.xml` will be loaded
537in alphabetical order.
538.PP
539Projects from local manifest files are added into local::<local manifest
540filename> group.
541.PP
542The legacy `$TOP_DIR/.repo/local_manifest.xml` path is no longer supported.
543.SS [copyfile]: #Element\-copyfile [linkfile]: #Element\-linkfile [Local Manifests]:
544.PP
545#local\-manifests
diff --git a/man/repo-overview.1 b/man/repo-overview.1
new file mode 100644
index 00000000..a12c7640
--- /dev/null
+++ b/man/repo-overview.1
@@ -0,0 +1,39 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo overview" "Repo Manual"
3.SH NAME
4repo \- repo overview - manual page for repo overview
5.SH SYNOPSIS
6.B repo
7\fI\,overview \/\fR[\fI\,--current-branch\/\fR] [\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Display overview of unmerged project branches
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-c\fR, \fB\-\-current\-branch\fR
18consider only checked out branches
19.TP
20\fB\-\-no\-current\-branch\fR
21consider all local branches
22.SS Logging options:
23.TP
24\fB\-v\fR, \fB\-\-verbose\fR
25show all output
26.TP
27\fB\-q\fR, \fB\-\-quiet\fR
28only show errors
29.PP
30Run `repo help overview` to view the detailed manual.
31.SH DETAILS
32.PP
33The 'repo overview' command is used to display an overview of the projects
34branches, and list any local commits that have not yet been merged into the
35project.
36.PP
37The \fB\-c\fR/\-\-current\-branch option can be used to restrict the output to only
38branches currently checked out in each project. By default, all branches are
39displayed.
diff --git a/man/repo-prune.1 b/man/repo-prune.1
new file mode 100644
index 00000000..2479542c
--- /dev/null
+++ b/man/repo-prune.1
@@ -0,0 +1,27 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo prune" "Repo Manual"
3.SH NAME
4repo \- repo prune - manual page for repo prune
5.SH SYNOPSIS
6.B repo
7\fI\,prune \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Prune (delete) already merged topics
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.SS Logging options:
20.TP
21\fB\-v\fR, \fB\-\-verbose\fR
22show all output
23.TP
24\fB\-q\fR, \fB\-\-quiet\fR
25only show errors
26.PP
27Run `repo help prune` to view the detailed manual.
diff --git a/man/repo-rebase.1 b/man/repo-rebase.1
new file mode 100644
index 00000000..aa261036
--- /dev/null
+++ b/man/repo-rebase.1
@@ -0,0 +1,55 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo rebase" "Repo Manual"
3.SH NAME
4repo \- repo rebase - manual page for repo rebase
5.SH SYNOPSIS
6.B repo
7\fI\,rebase {\/\fR[\fI\,<project>\/\fR...] \fI\,| -i <project>\/\fR...\fI\,}\/\fR
8.SH DESCRIPTION
9Summary
10.PP
11Rebase local branches on upstream branch
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-\-fail\-fast\fR
18stop rebasing after first error is hit
19.TP
20\fB\-f\fR, \fB\-\-force\-rebase\fR
21pass \fB\-\-force\-rebase\fR to git rebase
22.TP
23\fB\-\-no\-ff\fR
24pass \fB\-\-no\-ff\fR to git rebase
25.TP
26\fB\-\-autosquash\fR
27pass \fB\-\-autosquash\fR to git rebase
28.TP
29\fB\-\-whitespace\fR=\fI\,WS\/\fR
30pass \fB\-\-whitespace\fR to git rebase
31.TP
32\fB\-\-auto\-stash\fR
33stash local modifications before starting
34.TP
35\fB\-m\fR, \fB\-\-onto\-manifest\fR
36rebase onto the manifest version instead of upstream
37HEAD (this helps to make sure the local tree stays
38consistent if you previously synced to a manifest)
39.SS Logging options:
40.TP
41\fB\-v\fR, \fB\-\-verbose\fR
42show all output
43.TP
44\fB\-q\fR, \fB\-\-quiet\fR
45only show errors
46.TP
47\fB\-i\fR, \fB\-\-interactive\fR
48interactive rebase (single project only)
49.PP
50Run `repo help rebase` to view the detailed manual.
51.SH DETAILS
52.PP
53\&'repo rebase' uses git rebase to move local changes in the current topic branch
54to the HEAD of the upstream history, useful when you have made commits in a
55topic branch but need to incorporate new upstream changes "underneath" them.
diff --git a/man/repo-selfupdate.1 b/man/repo-selfupdate.1
new file mode 100644
index 00000000..70c855ab
--- /dev/null
+++ b/man/repo-selfupdate.1
@@ -0,0 +1,35 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo selfupdate" "Repo Manual"
3.SH NAME
4repo \- repo selfupdate - manual page for repo selfupdate
5.SH SYNOPSIS
6.B repo
7\fI\,selfupdate\/\fR
8.SH DESCRIPTION
9Summary
10.PP
11Update repo to the latest version
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.SS repo Version options:
24.TP
25\fB\-\-no\-repo\-verify\fR
26do not verify repo source code
27.PP
28Run `repo help selfupdate` to view the detailed manual.
29.SH DETAILS
30.PP
31The 'repo selfupdate' command upgrades repo to the latest version, if a newer
32version is available.
33.PP
34Normally this is done automatically by 'repo sync' and does not need to be
35performed by an end\-user.
diff --git a/man/repo-smartsync.1 b/man/repo-smartsync.1
new file mode 100644
index 00000000..ad98b479
--- /dev/null
+++ b/man/repo-smartsync.1
@@ -0,0 +1,117 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo smartsync" "Repo Manual"
3.SH NAME
4repo \- repo smartsync - manual page for repo smartsync
5.SH SYNOPSIS
6.B repo
7\fI\,smartsync \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Update working tree to the latest known good revision
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 1)
19.TP
20\fB\-\-jobs\-network\fR=\fI\,JOBS\/\fR
21number of network jobs to run in parallel (defaults to
22\fB\-\-jobs\fR)
23.TP
24\fB\-\-jobs\-checkout\fR=\fI\,JOBS\/\fR
25number of local checkout jobs to run in parallel
26(defaults to \fB\-\-jobs\fR)
27.TP
28\fB\-f\fR, \fB\-\-force\-broken\fR
29obsolete option (to be deleted in the future)
30.TP
31\fB\-\-fail\-fast\fR
32stop syncing after first error is hit
33.TP
34\fB\-\-force\-sync\fR
35overwrite an existing git directory if it needs to
36point to a different object directory. WARNING: this
37may cause loss of data
38.TP
39\fB\-\-force\-remove\-dirty\fR
40force remove projects with uncommitted modifications
41if projects no longer exist in the manifest. WARNING:
42this may cause loss of data
43.TP
44\fB\-l\fR, \fB\-\-local\-only\fR
45only update working tree, don't fetch
46.TP
47\fB\-\-no\-manifest\-update\fR, \fB\-\-nmu\fR
48use the existing manifest checkout as\-is. (do not
49update to the latest revision)
50.TP
51\fB\-n\fR, \fB\-\-network\-only\fR
52fetch only, don't update working tree
53.TP
54\fB\-d\fR, \fB\-\-detach\fR
55detach projects back to manifest revision
56.TP
57\fB\-c\fR, \fB\-\-current\-branch\fR
58fetch only current branch from server
59.TP
60\fB\-\-no\-current\-branch\fR
61fetch all branches from server
62.TP
63\fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml
64temporary manifest to use for this sync
65.TP
66\fB\-\-clone\-bundle\fR
67enable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS
68.TP
69\fB\-\-no\-clone\-bundle\fR
70disable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS
71.TP
72\fB\-u\fR MANIFEST_SERVER_USERNAME, \fB\-\-manifest\-server\-username\fR=\fI\,MANIFEST_SERVER_USERNAME\/\fR
73username to authenticate with the manifest server
74.TP
75\fB\-p\fR MANIFEST_SERVER_PASSWORD, \fB\-\-manifest\-server\-password\fR=\fI\,MANIFEST_SERVER_PASSWORD\/\fR
76password to authenticate with the manifest server
77.TP
78\fB\-\-fetch\-submodules\fR
79fetch submodules from server
80.TP
81\fB\-\-use\-superproject\fR
82use the manifest superproject to sync projects
83.TP
84\fB\-\-no\-use\-superproject\fR
85disable use of manifest superprojects
86.TP
87\fB\-\-tags\fR
88fetch tags
89.TP
90\fB\-\-no\-tags\fR
91don't fetch tags
92.TP
93\fB\-\-optimized\-fetch\fR
94only fetch projects fixed to sha1 if revision does not
95exist locally
96.TP
97\fB\-\-retry\-fetches\fR=\fI\,RETRY_FETCHES\/\fR
98number of times to retry fetches on transient errors
99.TP
100\fB\-\-prune\fR
101delete refs that no longer exist on the remote
102.SS Logging options:
103.TP
104\fB\-v\fR, \fB\-\-verbose\fR
105show all output
106.TP
107\fB\-q\fR, \fB\-\-quiet\fR
108only show errors
109.SS repo Version options:
110.TP
111\fB\-\-no\-repo\-verify\fR
112do not verify repo source code
113.PP
114Run `repo help smartsync` to view the detailed manual.
115.SH DETAILS
116.PP
117The 'repo smartsync' command is a shortcut for sync \fB\-s\fR.
diff --git a/man/repo-stage.1 b/man/repo-stage.1
new file mode 100644
index 00000000..07e1cac6
--- /dev/null
+++ b/man/repo-stage.1
@@ -0,0 +1,30 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo stage" "Repo Manual"
3.SH NAME
4repo \- repo stage - manual page for repo stage
5.SH SYNOPSIS
6.B repo
7\fI\,stage -i \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Stage file(s) for commit
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.TP
24\fB\-i\fR, \fB\-\-interactive\fR
25use interactive staging
26.PP
27Run `repo help stage` to view the detailed manual.
28.SH DETAILS
29.PP
30The 'repo stage' command stages files to prepare the next commit.
diff --git a/man/repo-start.1 b/man/repo-start.1
new file mode 100644
index 00000000..cda3739f
--- /dev/null
+++ b/man/repo-start.1
@@ -0,0 +1,40 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo start" "Repo Manual"
3.SH NAME
4repo \- repo start - manual page for repo start
5.SH SYNOPSIS
6.B repo
7\fI\,start <newbranchname> \/\fR[\fI\,--all | <project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Start a new branch for development
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.TP
20\fB\-\-all\fR
21begin branch in all projects
22.TP
23\fB\-r\fR REVISION, \fB\-\-rev\fR=\fI\,REVISION\/\fR, \fB\-\-revision\fR=\fI\,REVISION\/\fR
24point branch at this revision instead of upstream
25.TP
26\fB\-\-head\fR, \fB\-\-HEAD\fR
27abbreviation for \fB\-\-rev\fR HEAD
28.SS Logging options:
29.TP
30\fB\-v\fR, \fB\-\-verbose\fR
31show all output
32.TP
33\fB\-q\fR, \fB\-\-quiet\fR
34only show errors
35.PP
36Run `repo help start` to view the detailed manual.
37.SH DETAILS
38.PP
39\&'repo start' begins a new branch of development, starting from the revision
40specified in the manifest.
diff --git a/man/repo-status.1 b/man/repo-status.1
new file mode 100644
index 00000000..6037ae1a
--- /dev/null
+++ b/man/repo-status.1
@@ -0,0 +1,97 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo status" "Repo Manual"
3.SH NAME
4repo \- repo status - manual page for repo status
5.SH SYNOPSIS
6.B repo
7\fI\,status \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Show the working tree status
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.TP
20\fB\-o\fR, \fB\-\-orphans\fR
21include objects in working directory outside of repo
22projects
23.SS Logging options:
24.TP
25\fB\-v\fR, \fB\-\-verbose\fR
26show all output
27.TP
28\fB\-q\fR, \fB\-\-quiet\fR
29only show errors
30.PP
31Run `repo help status` to view the detailed manual.
32.SH DETAILS
33.PP
34\&'repo status' compares the working tree to the staging area (aka index), and the
35most recent commit on this branch (HEAD), in each project specified. A summary
36is displayed, one line per file where there is a difference between these three
37states.
38.PP
39The \fB\-j\fR/\-\-jobs option can be used to run multiple status queries in parallel.
40.PP
41The \fB\-o\fR/\-\-orphans option can be used to show objects that are in the working
42directory, but not associated with a repo project. This includes unmanaged
43top\-level files and directories, but also includes deeper items. For example, if
44dir/subdir/proj1 and dir/subdir/proj2 are repo projects, dir/subdir/proj3 will
45be shown if it is not known to repo.
46.PP
47Status Display
48.PP
49The status display is organized into three columns of information, for example
50if the file 'subcmds/status.py' is modified in the project 'repo' on branch
51\&'devwork':
52.TP
53project repo/
54branch devwork
55.TP
56\fB\-m\fR
57subcmds/status.py
58.PP
59The first column explains how the staging area (index) differs from the last
60commit (HEAD). Its values are always displayed in upper case and have the
61following meanings:
62.TP
63\-:
64no difference
65.TP
66A:
67added (not in HEAD, in index )
68.TP
69M:
70modified ( in HEAD, in index, different content )
71.TP
72D:
73deleted ( in HEAD, not in index )
74.TP
75R:
76renamed (not in HEAD, in index, path changed )
77.TP
78C:
79copied (not in HEAD, in index, copied from another)
80.TP
81T:
82mode changed ( in HEAD, in index, same content )
83.TP
84U:
85unmerged; conflict resolution required
86.PP
87The second column explains how the working directory differs from the index. Its
88values are always displayed in lower case and have the following meanings:
89.TP
90\-:
91new / unknown (not in index, in work tree )
92.TP
93m:
94modified ( in index, in work tree, modified )
95.TP
96d:
97deleted ( in index, not in work tree )
diff --git a/man/repo-sync.1 b/man/repo-sync.1
new file mode 100644
index 00000000..70f7c207
--- /dev/null
+++ b/man/repo-sync.1
@@ -0,0 +1,208 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo sync" "Repo Manual"
3.SH NAME
4repo \- repo sync - manual page for repo sync
5.SH SYNOPSIS
6.B repo
7\fI\,sync \/\fR[\fI\,<project>\/\fR...]
8.SH DESCRIPTION
9Summary
10.PP
11Update working tree to the latest revision
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 1)
19.TP
20\fB\-\-jobs\-network\fR=\fI\,JOBS\/\fR
21number of network jobs to run in parallel (defaults to
22\fB\-\-jobs\fR)
23.TP
24\fB\-\-jobs\-checkout\fR=\fI\,JOBS\/\fR
25number of local checkout jobs to run in parallel
26(defaults to \fB\-\-jobs\fR)
27.TP
28\fB\-f\fR, \fB\-\-force\-broken\fR
29obsolete option (to be deleted in the future)
30.TP
31\fB\-\-fail\-fast\fR
32stop syncing after first error is hit
33.TP
34\fB\-\-force\-sync\fR
35overwrite an existing git directory if it needs to
36point to a different object directory. WARNING: this
37may cause loss of data
38.TP
39\fB\-\-force\-remove\-dirty\fR
40force remove projects with uncommitted modifications
41if projects no longer exist in the manifest. WARNING:
42this may cause loss of data
43.TP
44\fB\-l\fR, \fB\-\-local\-only\fR
45only update working tree, don't fetch
46.TP
47\fB\-\-no\-manifest\-update\fR, \fB\-\-nmu\fR
48use the existing manifest checkout as\-is. (do not
49update to the latest revision)
50.TP
51\fB\-n\fR, \fB\-\-network\-only\fR
52fetch only, don't update working tree
53.TP
54\fB\-d\fR, \fB\-\-detach\fR
55detach projects back to manifest revision
56.TP
57\fB\-c\fR, \fB\-\-current\-branch\fR
58fetch only current branch from server
59.TP
60\fB\-\-no\-current\-branch\fR
61fetch all branches from server
62.TP
63\fB\-m\fR NAME.xml, \fB\-\-manifest\-name\fR=\fI\,NAME\/\fR.xml
64temporary manifest to use for this sync
65.TP
66\fB\-\-clone\-bundle\fR
67enable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS
68.TP
69\fB\-\-no\-clone\-bundle\fR
70disable use of \fI\,/clone.bundle\/\fP on HTTP/HTTPS
71.TP
72\fB\-u\fR MANIFEST_SERVER_USERNAME, \fB\-\-manifest\-server\-username\fR=\fI\,MANIFEST_SERVER_USERNAME\/\fR
73username to authenticate with the manifest server
74.TP
75\fB\-p\fR MANIFEST_SERVER_PASSWORD, \fB\-\-manifest\-server\-password\fR=\fI\,MANIFEST_SERVER_PASSWORD\/\fR
76password to authenticate with the manifest server
77.TP
78\fB\-\-fetch\-submodules\fR
79fetch submodules from server
80.TP
81\fB\-\-use\-superproject\fR
82use the manifest superproject to sync projects
83.TP
84\fB\-\-no\-use\-superproject\fR
85disable use of manifest superprojects
86.TP
87\fB\-\-tags\fR
88fetch tags
89.TP
90\fB\-\-no\-tags\fR
91don't fetch tags
92.TP
93\fB\-\-optimized\-fetch\fR
94only fetch projects fixed to sha1 if revision does not
95exist locally
96.TP
97\fB\-\-retry\-fetches\fR=\fI\,RETRY_FETCHES\/\fR
98number of times to retry fetches on transient errors
99.TP
100\fB\-\-prune\fR
101delete refs that no longer exist on the remote
102.TP
103\fB\-s\fR, \fB\-\-smart\-sync\fR
104smart sync using manifest from the latest known good
105build
106.TP
107\fB\-t\fR SMART_TAG, \fB\-\-smart\-tag\fR=\fI\,SMART_TAG\/\fR
108smart sync using manifest from a known tag
109.SS Logging options:
110.TP
111\fB\-v\fR, \fB\-\-verbose\fR
112show all output
113.TP
114\fB\-q\fR, \fB\-\-quiet\fR
115only show errors
116.SS repo Version options:
117.TP
118\fB\-\-no\-repo\-verify\fR
119do not verify repo source code
120.PP
121Run `repo help sync` to view the detailed manual.
122.SH DETAILS
123.PP
124The 'repo sync' command synchronizes local project directories with the remote
125repositories specified in the manifest. If a local project does not yet exist,
126it will clone a new local directory from the remote repository and set up
127tracking branches as specified in the manifest. If the local project already
128exists, 'repo sync' will update the remote branches and rebase any new local
129changes on top of the new remote changes.
130.PP
131\&'repo sync' will synchronize all projects listed at the command line. Projects
132can be specified either by name, or by a relative or absolute path to the
133project's local directory. If no projects are specified, 'repo sync' will
134synchronize all projects listed in the manifest.
135.PP
136The \fB\-d\fR/\-\-detach option can be used to switch specified projects back to the
137manifest revision. This option is especially helpful if the project is currently
138on a topic branch, but the manifest revision is temporarily needed.
139.PP
140The \fB\-s\fR/\-\-smart\-sync option can be used to sync to a known good build as
141specified by the manifest\-server element in the current manifest. The
142\fB\-t\fR/\-\-smart\-tag option is similar and allows you to specify a custom tag/label.
143.PP
144The \fB\-u\fR/\-\-manifest\-server\-username and \fB\-p\fR/\-\-manifest\-server\-password options can
145be used to specify a username and password to authenticate with the manifest
146server when using the \fB\-s\fR or \fB\-t\fR option.
147.PP
148If \fB\-u\fR and \fB\-p\fR are not specified when using the \fB\-s\fR or \fB\-t\fR option, 'repo sync' will
149attempt to read authentication credentials for the manifest server from the
150user's .netrc file.
151.PP
152\&'repo sync' will not use authentication credentials from \fB\-u\fR/\-p or .netrc if the
153manifest server specified in the manifest file already includes credentials.
154.PP
155By default, all projects will be synced. The \fB\-\-fail\-fast\fR option can be used to
156halt syncing as soon as possible when the first project fails to sync.
157.PP
158The \fB\-\-force\-sync\fR option can be used to overwrite existing git directories if
159they have previously been linked to a different object directory. WARNING: This
160may cause data to be lost since refs may be removed when overwriting.
161.PP
162The \fB\-\-force\-remove\-dirty\fR option can be used to remove previously used projects
163with uncommitted changes. WARNING: This may cause data to be lost since
164uncommitted changes may be removed with projects that no longer exist in the
165manifest.
166.PP
167The \fB\-\-no\-clone\-bundle\fR option disables any attempt to use \fI\,$URL/clone.bundle\/\fP to
168bootstrap a new Git repository from a resumeable bundle file on a content
169delivery network. This may be necessary if there are problems with the local
170Python HTTP client or proxy configuration, but the Git binary works.
171.PP
172The \fB\-\-fetch\-submodules\fR option enables fetching Git submodules of a project from
173server.
174.PP
175The \fB\-c\fR/\-\-current\-branch option can be used to only fetch objects that are on the
176branch specified by a project's revision.
177.PP
178The \fB\-\-optimized\-fetch\fR option can be used to only fetch projects that are fixed
179to a sha1 revision if the sha1 revision does not already exist locally.
180.PP
181The \fB\-\-prune\fR option can be used to remove any refs that no longer exist on the
182remote.
183.PP
184SSH Connections
185.PP
186If at least one project remote URL uses an SSH connection (ssh://, git+ssh://,
187or user@host:path syntax) repo will automatically enable the SSH ControlMaster
188option when connecting to that host. This feature permits other projects in the
189same 'repo sync' session to reuse the same SSH tunnel, saving connection setup
190overheads.
191.PP
192To disable this behavior on UNIX platforms, set the GIT_SSH environment variable
193to 'ssh'. For example:
194.IP
195export GIT_SSH=ssh
196repo sync
197.PP
198Compatibility
199.PP
200This feature is automatically disabled on Windows, due to the lack of UNIX
201domain socket support.
202.PP
203This feature is not compatible with url.insteadof rewrites in the user's
204~/.gitconfig. 'repo sync' is currently not able to perform the rewrite early
205enough to establish the ControlMaster tunnel.
206.PP
207If the remote SSH daemon is Gerrit Code Review, version 2.0.10 or later is
208required to fix a server side protocol bug.
diff --git a/man/repo-upload.1 b/man/repo-upload.1
new file mode 100644
index 00000000..6deed047
--- /dev/null
+++ b/man/repo-upload.1
@@ -0,0 +1,174 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo upload" "Repo Manual"
3.SH NAME
4repo \- repo upload - manual page for repo upload
5.SH SYNOPSIS
6.B repo
7\fI\,upload \/\fR[\fI\,--re --cc\/\fR] [\fI\,<project>\/\fR]...
8.SH DESCRIPTION
9Summary
10.PP
11Upload changes for code review
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.TP
17\fB\-j\fR JOBS, \fB\-\-jobs\fR=\fI\,JOBS\/\fR
18number of jobs to run in parallel (default: 4)
19.TP
20\fB\-t\fR
21send local branch name to Gerrit Code Review
22.TP
23\fB\-\-hashtag\fR=\fI\,HASHTAGS\/\fR, \fB\-\-ht\fR=\fI\,HASHTAGS\/\fR
24add hashtags (comma delimited) to the review
25.TP
26\fB\-\-hashtag\-branch\fR, \fB\-\-htb\fR
27add local branch name as a hashtag
28.TP
29\fB\-l\fR LABELS, \fB\-\-label\fR=\fI\,LABELS\/\fR
30add a label when uploading
31.TP
32\fB\-\-re\fR=\fI\,REVIEWERS\/\fR, \fB\-\-reviewers\fR=\fI\,REVIEWERS\/\fR
33request reviews from these people
34.TP
35\fB\-\-cc\fR=\fI\,CC\/\fR
36also send email to these email addresses
37.TP
38\fB\-\-br\fR=\fI\,BRANCH\/\fR, \fB\-\-branch\fR=\fI\,BRANCH\/\fR
39(local) branch to upload
40.TP
41\fB\-c\fR, \fB\-\-current\-branch\fR
42upload current git branch
43.TP
44\fB\-\-no\-current\-branch\fR
45upload all git branches
46.TP
47\fB\-\-ne\fR, \fB\-\-no\-emails\fR
48do not send e\-mails on upload
49.TP
50\fB\-p\fR, \fB\-\-private\fR
51upload as a private change (deprecated; use \fB\-\-wip\fR)
52.TP
53\fB\-w\fR, \fB\-\-wip\fR
54upload as a work\-in\-progress change
55.TP
56\fB\-o\fR PUSH_OPTIONS, \fB\-\-push\-option\fR=\fI\,PUSH_OPTIONS\/\fR
57additional push options to transmit
58.TP
59\fB\-D\fR BRANCH, \fB\-\-destination\fR=\fI\,BRANCH\/\fR, \fB\-\-dest\fR=\fI\,BRANCH\/\fR
60submit for review on this target branch
61.TP
62\fB\-n\fR, \fB\-\-dry\-run\fR
63do everything except actually upload the CL
64.TP
65\fB\-y\fR, \fB\-\-yes\fR
66answer yes to all safe prompts
67.TP
68\fB\-\-no\-cert\-checks\fR
69disable verifying ssl certs (unsafe)
70.SS Logging options:
71.TP
72\fB\-v\fR, \fB\-\-verbose\fR
73show all output
74.TP
75\fB\-q\fR, \fB\-\-quiet\fR
76only show errors
77.SS pre\-upload hooks:
78.TP
79\fB\-\-no\-verify\fR
80Do not run the pre\-upload hook.
81.TP
82\fB\-\-verify\fR
83Run the pre\-upload hook without prompting.
84.TP
85\fB\-\-ignore\-hooks\fR
86Do not abort if pre\-upload hooks fail.
87.PP
88Run `repo help upload` to view the detailed manual.
89.SH DETAILS
90.PP
91The 'repo upload' command is used to send changes to the Gerrit Code Review
92system. It searches for topic branches in local projects that have not yet been
93published for review. If multiple topic branches are found, 'repo upload' opens
94an editor to allow the user to select which branches to upload.
95.PP
96\&'repo upload' searches for uploadable changes in all projects listed at the
97command line. Projects can be specified either by name, or by a relative or
98absolute path to the project's local directory. If no projects are specified,
99\&'repo upload' will search for uploadable changes in all projects listed in the
100manifest.
101.PP
102If the \fB\-\-reviewers\fR or \fB\-\-cc\fR options are passed, those emails are added to the
103respective list of users, and emails are sent to any new users. Users passed as
104\fB\-\-reviewers\fR must already be registered with the code review system, or the
105upload will fail.
106.PP
107Configuration
108.PP
109review.URL.autoupload:
110.PP
111To disable the "Upload ... (y/N)?" prompt, you can set a per\-project or global
112Git configuration option. If review.URL.autoupload is set to "true" then repo
113will assume you always answer "y" at the prompt, and will not prompt you
114further. If it is set to "false" then repo will assume you always answer "n",
115and will abort.
116.PP
117review.URL.autoreviewer:
118.PP
119To automatically append a user or mailing list to reviews, you can set a
120per\-project or global Git option to do so.
121.PP
122review.URL.autocopy:
123.PP
124To automatically copy a user or mailing list to all uploaded reviews, you can
125set a per\-project or global Git option to do so. Specifically,
126review.URL.autocopy can be set to a comma separated list of reviewers who you
127always want copied on all uploads with a non\-empty \fB\-\-re\fR argument.
128.PP
129review.URL.username:
130.PP
131Override the username used to connect to Gerrit Code Review. By default the
132local part of the email address is used.
133.PP
134The URL must match the review URL listed in the manifest XML file, or in the
135\&.git/config within the project. For example:
136.IP
137[remote "origin"]
138.IP
139url = git://git.example.com/project.git
140review = http://review.example.com/
141.IP
142[review "http://review.example.com/"]
143.IP
144autoupload = true
145autocopy = johndoe@company.com,my\-team\-alias@company.com
146.PP
147review.URL.uploadtopic:
148.PP
149To add a topic branch whenever uploading a commit, you can set a per\-project or
150global Git option to do so. If review.URL.uploadtopic is set to "true" then repo
151will assume you always want the equivalent of the \fB\-t\fR option to the repo command.
152If unset or set to "false" then repo will make use of only the command line
153option.
154.PP
155review.URL.uploadhashtags:
156.PP
157To add hashtags whenever uploading a commit, you can set a per\-project or global
158Git option to do so. The value of review.URL.uploadhashtags will be used as
159comma delimited hashtags like the \fB\-\-hashtag\fR option.
160.PP
161review.URL.uploadlabels:
162.PP
163To add labels whenever uploading a commit, you can set a per\-project or global
164Git option to do so. The value of review.URL.uploadlabels will be used as comma
165delimited labels like the \fB\-\-label\fR option.
166.PP
167review.URL.uploadnotify:
168.PP
169Control e\-mail notifications when uploading.
170https://gerrit\-review.googlesource.com/Documentation/user\-upload.html#notify
171.PP
172References
173.PP
174Gerrit Code Review: https://www.gerritcodereview.com/
diff --git a/man/repo-version.1 b/man/repo-version.1
new file mode 100644
index 00000000..cc703f61
--- /dev/null
+++ b/man/repo-version.1
@@ -0,0 +1,24 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo version" "Repo Manual"
3.SH NAME
4repo \- repo version - manual page for repo version
5.SH SYNOPSIS
6.B repo
7\fI\,version\/\fR
8.SH DESCRIPTION
9Summary
10.PP
11Display the version of repo
12.SH OPTIONS
13.TP
14\fB\-h\fR, \fB\-\-help\fR
15show this help message and exit
16.SS Logging options:
17.TP
18\fB\-v\fR, \fB\-\-verbose\fR
19show all output
20.TP
21\fB\-q\fR, \fB\-\-quiet\fR
22only show errors
23.PP
24Run `repo help version` to view the detailed manual.
diff --git a/man/repo.1 b/man/repo.1
new file mode 100644
index 00000000..0bc3acdb
--- /dev/null
+++ b/man/repo.1
@@ -0,0 +1,93 @@
1.\" DO NOT MODIFY THIS FILE! It was generated by help2man.
2.TH REPO "1" "July 2021" "repo" "Repo Manual"
3.SH NAME
4repo \- repository management tool built on top of git
5.SH DESCRIPTION
6usage: repo COMMAND [ARGS]
7The complete list of recognized repo commands are:
8.TP
9abandon
10Permanently abandon a development branch
11.TP
12branch
13View current topic branches
14.TP
15branches
16View current topic branches
17.TP
18checkout
19Checkout a branch for development
20.TP
21cherry\-pick
22Cherry\-pick a change.
23.TP
24diff
25Show changes between commit and working tree
26.TP
27diffmanifests
28Manifest diff utility
29.TP
30download
31Download and checkout a change
32.TP
33forall
34Run a shell command in each project
35.TP
36gitc\-delete
37Delete a GITC Client.
38.TP
39gitc\-init
40Initialize a GITC Client.
41.TP
42grep
43Print lines matching a pattern
44.TP
45help
46Display detailed help on a command
47.TP
48info
49Get info on the manifest branch, current branch or unmerged branches
50.TP
51init
52Initialize a repo client checkout in the current directory
53.TP
54list
55List projects and their associated directories
56.TP
57manifest
58Manifest inspection utility
59.TP
60overview
61Display overview of unmerged project branches
62.TP
63prune
64Prune (delete) already merged topics
65.TP
66rebase
67Rebase local branches on upstream branch
68.TP
69selfupdate
70Update repo to the latest version
71.TP
72smartsync
73Update working tree to the latest known good revision
74.TP
75stage
76Stage file(s) for commit
77.TP
78start
79Start a new branch for development
80.TP
81status
82Show the working tree status
83.TP
84sync
85Update working tree to the latest revision
86.TP
87upload
88Upload changes for code review
89.TP
90version
91Display the version of repo
92.PP
93See 'repo help <command>' for more information on a specific command.
diff --git a/release/update-manpages b/release/update-manpages
new file mode 100755
index 00000000..3aeee206
--- /dev/null
+++ b/release/update-manpages
@@ -0,0 +1,85 @@
1#!/usr/bin/env python3
2# Copyright (C) 2021 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16"""Helper tool for generating manual page for all repo commands.
17
18This is intended to be run before every official Repo release.
19"""
20
21from pathlib import Path
22from functools import partial
23import argparse
24import multiprocessing
25import os
26import re
27import shutil
28import subprocess
29import sys
30import tempfile
31
32TOPDIR = Path(__file__).resolve().parent.parent
33MANDIR = TOPDIR.joinpath('man')
34
35# Load repo local modules.
36sys.path.insert(0, str(TOPDIR))
37from git_command import RepoSourceVersion
38import subcmds
39
40def worker(cmd, **kwargs):
41 subprocess.run(cmd, **kwargs)
42
43def main(argv):
44 parser = argparse.ArgumentParser(description=__doc__)
45 opts = parser.parse_args(argv)
46
47 if not shutil.which('help2man'):
48 sys.exit('Please install help2man to continue.')
49
50 # "repo branch" is an alias for "repo branches".
51 del subcmds.all_commands['branch']
52 (MANDIR / 'repo-branch.1').write_text('.so man1/repo-branches.1')
53
54 version = RepoSourceVersion()
55 cmdlist = [['help2man', '-N', '-n', f'repo {cmd} - manual page for repo {cmd}',
56 '-S', f'repo {cmd}', '-m', 'Repo Manual', f'--version-string={version}',
57 '-o', MANDIR.joinpath(f'repo-{cmd}.1'), TOPDIR.joinpath('repo'),
58 '-h', f'help {cmd}'] for cmd in subcmds.all_commands]
59 cmdlist.append(['help2man', '-N', '-n', 'repository management tool built on top of git',
60 '-S', 'repo', '-m', 'Repo Manual', f'--version-string={version}',
61 '-o', MANDIR.joinpath('repo.1'), TOPDIR.joinpath('repo'),
62 '-h', 'help --all'])
63
64 with tempfile.TemporaryDirectory() as tempdir:
65 repo_dir = Path(tempdir) / '.repo'
66 repo_dir.mkdir()
67 (repo_dir / 'repo').symlink_to(TOPDIR)
68
69 # Run all cmd in parallel, and wait for them to finish.
70 with multiprocessing.Pool() as pool:
71 pool.map(partial(worker, cwd=tempdir, check=True), cmdlist)
72
73 regex = (
74 (r'(It was generated by help2man) [0-9.]+', '\g<1>.'),
75 (r'^\.IP\n(.*:)\n', '.SS \g<1>\n'),
76 (r'^\.PP\nDescription', '.SH DETAILS'),
77 )
78 for path in MANDIR.glob('*.1'):
79 data = path.read_text()
80 for pattern, replacement in regex:
81 data = re.sub(pattern, replacement, data, flags=re.M)
82 path.write_text(data)
83
84if __name__ == '__main__':
85 sys.exit(main(sys.argv[1:]))