]> Sergey Matveev's repositories - public-inbox.git/blob - Documentation/public-inbox-gcf2.pod
add gcf2 client and executable script
[public-inbox.git] / Documentation / public-inbox-gcf2.pod
1 =head1 NAME
2
3 public-inbox-gcf2 - internal libgit2-based blob retriever
4
5 =head1 SYNOPSIS
6
7         This is an internal command used by public-inbox.
8         It may change unrecognizably or cease to exist at some point
9
10 =head1 DESCRIPTION
11
12 public-inbox-gcf2 is an optional internal process used by
13 public-inbox daemons for read-only access to underlying git
14 repositories.
15
16 Users are NOT expected to run public-inbox-gcf2 on their own.
17 It replaces multiple C<git cat-file --batch> processes by treating
18 any git repos it knows about as alternates.
19
20 None of its behaviors are stable and it is ALL subject to change
21 at any time.
22
23 Any lines written to its standard input prefixed with a C</>
24 are interpreted as a git directory.  That git directory
25 will be suffixed with "/objects" and treated as an alternate.
26 It writes nothing to stdout in this case.
27
28 Otherwise it behaves like C<git cat-file --batch>, but only accepts
29 unabbreviated hexadecimal object IDs in its standard input.
30 Its output format is identical to C<git cat-file --batch>.  It
31 only works for L<public-inbox-v2-format(5)> inboxes and v1
32 inboxes indexed by L<public-inbox-index(1)>.
33
34 =head1 OPTIONS
35
36 =head1 ENVIRONMENT
37
38 =over 8
39
40 =item PERL_INLINE_DIRECTORY
41
42 This must be set unless C<~/.cache/public-inbox/inline-c>
43 exists.  C<public-inbox-gcf2> uses L<Inline::C> and libgit2
44 and compiles a small shim on its first run.
45
46 =back
47
48 =head1 CONTACT
49
50 Feedback welcome via plain-text mail to L<mailto:meta@public-inbox.org>
51
52 The mail archives are hosted at L<https://public-inbox.org/meta/>
53 and L<http://hjrcffqmbrq6wope.onion/meta/>
54
55 =head1 COPYRIGHT
56
57 Copyright 2020 all contributors L<mailto:meta@public-inbox.org>
58
59 License: AGPL-3.0+ L<https://www.gnu.org/licenses/agpl-3.0.txt>
60
61 =head1 SEE ALSO
62
63 L<git-cat-file(1)>