| .\" Man page generated from reStructuredText. |
| . |
| .TH GROK-MANIFEST 1 "2018-04-18" "1.0.2" "" |
| .SH NAME |
| GROK-MANIFEST \- Create manifest for use with grokmirror |
| . |
| .nr rst2man-indent-level 0 |
| . |
| .de1 rstReportMargin |
| \\$1 \\n[an-margin] |
| level \\n[rst2man-indent-level] |
| level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] |
| - |
| \\n[rst2man-indent0] |
| \\n[rst2man-indent1] |
| \\n[rst2man-indent2] |
| .. |
| .de1 INDENT |
| .\" .rstReportMargin pre: |
| . RS \\$1 |
| . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] |
| . nr rst2man-indent-level +1 |
| .\" .rstReportMargin post: |
| .. |
| .de UNINDENT |
| . RE |
| .\" indent \\n[an-margin] |
| .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] |
| .nr rst2man-indent-level -1 |
| .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] |
| .in \\n[rst2man-indent\\n[rst2man-indent-level]]u |
| .. |
| .SH SYNOPSIS |
| .INDENT 0.0 |
| .INDENT 3.5 |
| grok\-manifest [opts] \-m manifest.js[.gz] \-t /path [/path/to/bare.git] |
| .UNINDENT |
| .UNINDENT |
| .SH DESCRIPTION |
| .sp |
| Call grok\-manifest from a git post\-update or post\-receive hook to create |
| the latest repository manifest. This manifest file is downloaded by |
| mirror slaves (if newer than what they already have) and used to only |
| clone/pull the repositories that have changed since the mirror\(aqs last run. |
| .SH OPTIONS |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .INDENT 0.0 |
| .TP |
| .B \-\-version |
| show program\(aqs version number and exit |
| .TP |
| .B \-h\fP,\fB \-\-help |
| show this help message and exit |
| .TP |
| .BI \-m \ MANIFILE\fP,\fB \ \-\-manifest\fB= MANIFILE |
| Location of manifest.js or manifest.js.gz |
| .TP |
| .BI \-t \ TOPLEVEL\fP,\fB \ \-\-toplevel\fB= TOPLEVEL |
| Top dir where all repositories reside |
| .TP |
| .BI \-l \ LOGFILE\fP,\fB \ \-\-logfile\fB= LOGFILE |
| When specified, will put debug logs in this location |
| .TP |
| .B \-c\fP,\fB \-\-check\-export\-ok |
| Honor the git\-daemon\-export\-ok magic file and |
| do not export repositories not marked as such |
| .TP |
| .B \-n\fP,\fB \-\-use\-now |
| Use current timestamp instead of parsing commits |
| .TP |
| .B \-p\fP,\fB \-\-purge |
| Purge deleted git repositories from manifest |
| .TP |
| .B \-x\fP,\fB \-\-remove |
| Remove repositories passed as arguments from |
| the manifest file |
| .TP |
| .B \-y\fP,\fB \-\-pretty |
| Pretty\-print the generated manifest (sort repos |
| and add indentation). This is much slower, so |
| should be used with caution on large |
| collections. |
| .TP |
| .B \-w\fP,\fB \-\-wait\-for\-manifest |
| When running with arguments, wait if manifest is not |
| there (can be useful when multiple writers are writing |
| to the manifest file via NFS) |
| .TP |
| .BI \-i \ IGNORE\fP,\fB \ \-\-ignore\-paths\fB= IGNORE |
| When finding git dirs, ignore these paths (can be used |
| multiple times, accepts shell\-style globbing) |
| .TP |
| .B \-v\fP,\fB \-\-verbose |
| Be verbose and tell us what you are doing |
| .UNINDENT |
| .UNINDENT |
| .UNINDENT |
| .SH EXAMPLES |
| .sp |
| The examples assume that the repositories are located in /repos. If your |
| repositories are in \fB/var/lib/git\fP, adjust both \fB\-m\fP and \fB\-t\fP |
| flags accordingly. |
| .sp |
| Initial manifest generation: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .sp |
| .nf |
| .ft C |
| /usr/bin/grok\-manifest \-m /repos/manifest.js.gz \-t /repos |
| .ft P |
| .fi |
| .UNINDENT |
| .UNINDENT |
| .sp |
| Inside the git hook: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .sp |
| .nf |
| .ft C |
| /usr/bin/grok\-manifest \-m /repos/manifest.js.gz \-t /repos \-n \(gapwd\(ga |
| .ft P |
| .fi |
| .UNINDENT |
| .UNINDENT |
| .sp |
| To purge deleted repositories, use the \fB\-p\fP flag when running from |
| cron: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .sp |
| .nf |
| .ft C |
| /usr/bin/grok\-manifest \-m /repos/manifest.js.gz \-t /repos \-p |
| .ft P |
| .fi |
| .UNINDENT |
| .UNINDENT |
| .sp |
| You can also add it to the gitolite\(aqs D command using the \fB\-x\fP flag: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .sp |
| .nf |
| .ft C |
| /usr/bin/grok\-manifest \-m /repos/manifest.js.gz \-t /repos \-x $repo.git |
| .ft P |
| .fi |
| .UNINDENT |
| .UNINDENT |
| .sp |
| To troubleshoot potential problems, you can pass \fB\-l\fP parameter to |
| grok\-manifest, just make sure the user executing the hook command (user |
| git or gitolite, for example) is able to write to that location: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| .sp |
| .nf |
| .ft C |
| /usr/bin/grok\-manifest \-m /repos/manifest.js.gz \-t /repos \e |
| \-l /var/log/git/grok\-manifest\-hook.log \-n \(gapwd\(ga |
| .ft P |
| .fi |
| .UNINDENT |
| .UNINDENT |
| .SH SEE ALSO |
| .INDENT 0.0 |
| .IP \(bu 2 |
| grok\-pull(1) |
| .IP \(bu 2 |
| git(1) |
| .UNINDENT |
| .SH SUPPORT |
| .sp |
| Please open an issue on Github: |
| .INDENT 0.0 |
| .INDENT 3.5 |
| \fI\%https://github.com/mricon/grokmirror/issues\fP |
| .UNINDENT |
| .UNINDENT |
| .SH AUTHOR |
| mricon@kernel.org |
| |
| License: GPLv3+ |
| .SH COPYRIGHT |
| The Linux Foundation and contributors |
| .\" Generated by docutils manpage writer. |
| . |