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. * Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD. * Audio Services:: The MPD.
* Virtualization Services:: Virtualization services. * Virtualization Services:: Virtualization services.
* Version Control Services:: Providing remote access to Git repositories. * Version Control Services:: Software version control servers.
* Game Services:: Game servers. * Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in. * PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix. * Guix Services:: Services relating specifically to Guix.
@ -19890,7 +19890,7 @@ declaration.
* Power Management Services:: Extending battery life, etc. * Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD. * Audio Services:: The MPD.
* Virtualization Services:: Virtualization services. * Virtualization Services:: Virtualization services.
* Version Control Services:: Providing remote access to Git repositories. * Version Control Services:: Software version control servers.
* Game Services:: Game servers. * Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in. * PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix. * 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 @node Version Control Services
@subsection Version Control Services @subsection Version Control Services
The @code{(gnu services version-control)} module provides a service to The @code{(gnu services version-control)} module provides services to
allow remote access to local Git repositories. There are three options: allow remote access to local Git and Fossil repositories.
the @code{git-daemon-service-type}, which provides access to repositories via For Git, the following services are available.
the @code{git://} unsecured TCP-based protocol, extending the
@code{nginx} web server to proxy some requests to @itemize
@code{git-http-backend}, or providing a web interface with @item The @ref{git-daemon-service-type, Git daemon service}
@code{cgit-service-type}. 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 @defvar git-daemon-service-type
Type for a service that runs @command{git daemon}, a simple TCP server to 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 The @code{git://} protocol lacks authentication. When you pull from a
repository fetched via @code{git://}, you don't know whether the data you 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 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 and encrypted transport, such as @code{https}. Although Git allows you
to serve repositories using unsophisticated file-based web servers, to serve repositories using unsophisticated file-based web servers,
there is a faster protocol implemented by the @code{git-http-backend} 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}. system services. @xref{Web Services}.
@end deffn @end deffn
@anchor{cgit-service-type}
@subsubheading Cgit Service @subsubheading Cgit Service
@cindex Cgit service @cindex Cgit service
@ -42936,6 +42962,7 @@ could instantiate a cgit service like this:
(cgitrc ""))) (cgitrc "")))
@end lisp @end lisp
@anchor{gitolite-service-type}
@subsubheading Gitolite Service @subsubheading Gitolite Service
@cindex Gitolite service @cindex Gitolite service
@ -43115,6 +43142,7 @@ Extra content to add verbatim into the git configuration file.
@end table @end table
@end deftp @end deftp
@anchor{gitile-service-type}
@subsubheading Gitile Service @subsubheading Gitile Service
@cindex Gitile service @cindex Gitile service