File: grok-manifest.1.rst

package info (click to toggle)
grokmirror 2.0.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 516 kB
  • sloc: python: 3,711; sh: 70; makefile: 8
file content (105 lines) | stat: -rw-r--r-- 3,953 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
GROK-MANIFEST
=============
---------------------------------------
Create manifest for use with grokmirror
---------------------------------------

:Author:    mricon@kernel.org
:Date:      2020-08-14
:Copyright: The Linux Foundation and contributors
:License:   GPLv3+
:Version:   2.0.0
:Manual section: 1

SYNOPSIS
--------
    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
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
  -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)
  -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`

SEE ALSO
--------
* grok-pull(1)
* git(1)

SUPPORT
-------
Email tools@linux.kernel.org.