blob: f93c0549878e4bf845bb83aa8aa276dc535d22f9 [file] [log] [blame]
.\" 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.
.