1GROK-MANIFEST(1) GROK-MANIFEST(1)
2
3
4
6 GROK-MANIFEST - Create manifest for use with grokmirror
7
9 grok-manifest [opts] -m manifest.js[.gz] -t /path
10 [/path/to/bare.git]
11
13 Call grok-manifest from a git post-update or post-receive hook to cre‐
14 ate the latest repository manifest. This manifest file is downloaded by
15 mirroring systems (if manifest is newer than what they already have)
16 and used to only clone/pull the repositories that have changed since
17 the grok-pull's last run.
18
20 --version
21 show program's version number and exit
22
23 -h, --help
24 show this help message and exit
25
26 --cfgfile=CFGFILE
27 Path to grokmirror.conf containing a [manifest] section
28
29 -m MANIFILE, --manifest=MANIFILE
30 Location of manifest.js or manifest.js.gz
31
32 -t TOPLEVEL, --toplevel=TOPLEVEL
33 Top dir where all repositories reside
34
35 -l LOGFILE, --logfile=LOGFILE
36 When specified, will put debug logs in this location
37
38 -c, --check-export-ok
39 Honor the git-daemon-export-ok magic file and do not export
40 repositories not marked as such
41
42 -n, --use-now
43 Use current timestamp instead of parsing commits
44
45 -p, --purge
46 Purge deleted git repositories from manifest
47
48 -x, --remove
49 Remove repositories passed as arguments from the manifest
50 file
51
52 -y, --pretty
53 Pretty-print the generated manifest (sort repos and add in‐
54 dentation). This is much slower, so should be used with cau‐
55 tion on large collections.
56
57 -w, --wait-for-manifest
58 When running with arguments, wait if manifest is not there
59 (can be useful when multiple writers are writing to the mani‐
60 fest file via NFS)
61
62 -i IGNORE, --ignore-paths=IGNORE
63 When finding git dirs, ignore these paths (can be used multi‐
64 ple times, accepts shell-style globbing)
65
66 -o, --fetch-objstore
67 Fetch updates into objstore repo (if used)
68
69 -v, --verbose
70 Be verbose and tell us what you are doing
71
72 You can set some of these options in a config file that you can pass
73 via --cfgfile option. See example grokmirror.conf file for documenta‐
74 tion. Values passed via cmdline flags will override the corresponding
75 config file values.
76
78 The examples assume that the repositories are located in /var/lib/gito‐
79 lite3/repositories.
80
81 Initial manifest generation:
82
83 /usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
84 -t /var/lib/gitolite3/repositories
85
86 Inside the git hook:
87
88 /usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
89 -t /var/lib/gitolite3/repositories -n `pwd`
90
91 To purge deleted repositories from the manifest, use the -p flag when
92 running from cron:
93
94 /usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
95 -t /var/lib/gitolite3/repositories -p
96
97 You can also add it to the gitolite's D command using the -x flag:
98
99 /usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
100 -t /var/lib/gitolite3/repositories \
101 -x $repo.git
102
103 To troubleshoot potential problems, you can pass -l parameter to
104 grok-manifest, just make sure the user executing the hook command (user
105 git or gitolite, for example) is able to write to that location:
106
107 /usr/bin/grok-manifest -m /var/www/html/manifest.js.gz \
108 -t /var/lib/gitolite3/repositories \
109 -l /var/log/grokmirror/grok-manifest.log -n `pwd`
110
112 • grok-pull(1)
113
114 • git(1)
115
117 Email tools@linux.kernel.org.
118
120 mricon@kernel.org
121
122 License: GPLv3+
123
125 The Linux Foundation and contributors
126
127
128
129
1302.0.0 2020-08-14 GROK-MANIFEST(1)