grok-manifest1
Create manifest for use with grokmirror
Usage
grok-manifest [opts]
-m
manifest.js
[.gz]
-t
/path
[/path/to/bare.git]
Overview
Call grok-manifest from a git post-update or post-receive hook to create the latest repository manifest. This manifest file is downloaded by mirroring systems (if manifest is newer than what they already have) and used to only clone/pull the repositories that have changed since the grok-pull's last run.
Options
-
--version -
show program's version number and exit
-
-h, --help -
show this help message and exit
-
--cfgfile=CFGFILE -
Path to grokmirror.conf containing a [manifest] section
|
Location of manifest.js or manifest.js.gz |
|---|---|
|
Top dir where all repositories reside |
|
When specified, will put debug logs in this location |
-
-c, --check-export-ok -
Honor the git-daemon-export-ok magic file and do not export repositories not marked as such
-
-n, --use-now -
Use current timestamp instead of parsing commits
-
-p, --purge -
Purge deleted git repositories from manifest
-
-x, --remove -
Remove repositories passed as arguments from the manifest file
-
-y, --pretty -
Pretty-print the generated manifest (sort repos and add indentation). This is much slower, so should be used with caution on large collections.
-
-w, --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)
-iIGNORE, --ignore-paths=IGNORE-
When finding git dirs, ignore these paths (can be used multiple times, accepts shell-style globbing)
-
-o, --fetch-objstore -
Fetch updates into objstore repo (if used)
-
-v, --verbose -
Be verbose and tell us what you are doing
You can set some of these options in a config file that you can pass via --cfgfile option. See example grokmirror.conf file for documentation. Values passed via cmdline flags will override the corresponding config file values.
Examples
The examples assume that the repositories are located in /var/lib/gitolite3/repositories.
Initial manifest generation:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \-t /var/lib/gitolite3/repositories
Inside the git hook:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \-t /var/lib/gitolite3/repositories -n `pwd`
To purge deleted repositories from the manifest, use the -p flag when running from cron:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \-t /var/lib/gitolite3/repositories -p
You can also add it to the gitolite's D command using the -x flag:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \-t /var/lib/gitolite3/repositories \-x $repo.git
To troubleshoot potential problems, you can pass -l 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:
/usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \-t /var/lib/gitolite3/repositories \-l /var/log/grokmirror/grok-manifest.log -n `pwd`
Support
Email [email protected].
Releases
4 releases since Debian 8 (Jessie); the text changed 2 times.
--cfgfile since Debian 13 (Trixie);
--fetch-objstore since Debian 13 (Trixie);
-o since Debian 13 (Trixie).