doc: Version Control Services: Generalize introduction.

* doc/guix.texi (Version Control Services):
  Update description to not be Git-exclusive.
  Update instroduction to mention Fossil in addition to Git.
  Add anchor points to navigate to individual services
  from the introduction.

Change-Id: I3af870a80fcf249bed97b0d29370f71ff00a9e73
This commit is contained in:
Nguyễn Gia Phong 2025-12-18 23:16:24 +09:00
parent 93ef009a91
commit bb8b2c4a8d
No known key found for this signature in database
GPG key ID: 84B69CE6F3F6B767

View file

@ -438,7 +438,7 @@ Services
* Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
* Version Control Services:: Providing remote access to Git repositories.
* Version Control Services:: Software version control servers.
* Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix.
@ -19890,7 +19890,7 @@ declaration.
* Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
* Version Control Services:: Providing remote access to Git repositories.
* Version Control Services:: Software version control servers.
* Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix.
@ -41844,13 +41844,30 @@ How often to run the node cleaning job. The default is once per day, at
@node Version Control Services
@subsection Version Control Services
The @code{(gnu services version-control)} module provides a service to
allow remote access to local Git repositories. There are three options:
the @code{git-daemon-service-type}, which provides access to repositories via
the @code{git://} unsecured TCP-based protocol, extending the
@code{nginx} web server to proxy some requests to
@code{git-http-backend}, or providing a web interface with
@code{cgit-service-type}.
The @code{(gnu services version-control)} module provides services to
allow remote access to local Git and Fossil repositories.
For Git, the following services are available.
@itemize
@item The @ref{git-daemon-service-type, Git daemon service}
provides access via the unsecured TCP-based @code{git://} protocol.
@item The @code{nginx} web server can proxy some requests
to @ref{git-http-backend, Git Smart HTTP backend}.
@item The @ref{cgit-service-type, cgit service} also implements
Git Smart HTTP protocol, in addition to a web interface.
@item The @ref{gitolite-service-type, Gitolite service} offers access
through SSH. The @ref{gitile-service-type, Gitile service}
can be used along side it to provide a web interface.
@end itemize
Fossil repositories are served along with a web interface
by the @ref{fossil-service-type, Fossil service}.
@anchor{git-daemon-service-type}
@subsubheading Git Daemon Service
@cindex Git daemon service
@cindex Git, hosting
@defvar git-daemon-service-type
Type for a service that runs @command{git daemon}, a simple TCP server to
@ -41909,7 +41926,15 @@ Extra options that will be passed to @command{git daemon}.@footnote{Run
The @code{git://} protocol lacks authentication. When you pull from a
repository fetched via @code{git://}, you don't know whether the data you
receive was modified or is even coming from the specified host, and your
connection is subject to eavesdropping. It's better to use an authenticated
connection is subject to eavesdropping.
@anchor{git-http-backend}
@subsubheading Git HTTP Backend
@cindex Git HTTP backend
@cindex Git, hosting
It's better to use an authenticated
and encrypted transport, such as @code{https}. Although Git allows you
to serve repositories using unsophisticated file-based web servers,
there is a faster protocol implemented by the @code{git-http-backend}
@ -41984,6 +42009,7 @@ HTTPS@. You will also need to add an @code{fcgiwrap} proxy to your
system services. @xref{Web Services}.
@end deffn
@anchor{cgit-service-type}
@subsubheading Cgit Service
@cindex Cgit service
@ -42936,6 +42962,7 @@ could instantiate a cgit service like this:
(cgitrc "")))
@end lisp
@anchor{gitolite-service-type}
@subsubheading Gitolite Service
@cindex Gitolite service
@ -43115,6 +43142,7 @@ Extra content to add verbatim into the git configuration file.
@end table
@end deftp
@anchor{gitile-service-type}
@subsubheading Gitile Service
@cindex Gitile service