| GROK-MANIFEST(1) | GROK-MANIFEST(1) | 
NAME¶
GROK-MANIFEST - Create manifest for use with grokmirrorSYNOPSIS¶
grok-manifest [opts] -m manifest.js[.gz] -t /path
  [/path/to/bare.git]
DESCRIPTION¶
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's last run.OPTIONS¶
- --version
 - show program's version number and exit
 
- -h, --help
 - show this help message and exit
 
- -m MANIFILE, --manifest=MANIFILE
 - Location of manifest.js or manifest.js.gz
 
- -t TOPLEVEL, --toplevel=TOPLEVEL
 - Top dir where all repositories reside
 
- -l LOGFILE, --logfile=LOGFILE
 - 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)
 
- -i IGNORE, --ignore-paths=IGNORE
 - When finding git dirs, ignore these paths (can be used multiple times, accepts shell-style globbing)
 
- -v, --verbose
 - Be verbose and tell us what you are doing
 
EXAMPLES¶
The examples assume that the repositories are located in /repos. If your repositories are in /var/lib/git, adjust both -m and -t flags accordingly. Initial manifest generation:/usr/bin/grok-manifest -m /repos/manifest.js.gz -t /repos
Inside the git hook:
/usr/bin/grok-manifest -m /repos/manifest.js.gz -t /repos -n `pwd`
To purge deleted repositories, use the -p flag when running from cron:
/usr/bin/grok-manifest -m /repos/manifest.js.gz -t /repos -p
You can also add it to the gitolite's "rm" ADC using the -x flag:
/usr/bin/grok-manifest -m /repos/manifest.js.gz -t /repos -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 /repos/manifest.js.gz -t /repos \
    -l /var/log/git/grok-manifest-hook.log -n `pwd`
SEE ALSO¶
- •
 - git(1)
 
SUPPORT¶
Please send support requests to the mailing list:AUTHOR¶
mricon@kernel.org License: GPLv3+COPYRIGHT¶
The Linux Foundation and contributors| 2013-04-26 | 0.3 |