|
Available since: version 19.19
Git is a distributed version-control system for tracking changes in source code during software development. GitWeb provides a web interface to Git repositories. You can browse history and content of source code, use search to find relevant commits and code. You can also clone repositories and upload code changes with a command-line Git client or with multiple available graphical clients. And you can share your code with people around the world.
To learn more on how to use Git visit Git tutorial.
After installation of GitWeb, a new repository can be created. It can be marked as private to limit access.
GitWeb can be accessed after installation e.g. by the web client through https://<my_freedombox_name>/gitweb
.
GitWeb on FreedomBox currently supports HTTP(S) remotes only (i.e. not SSH). To avoid having to enter the password each time you pull/push to the repository, you can edit your remote to include the credentials.
Example: https://username:password@my.freedombox.rocks/gitweb/myrepo
Your username and password will be encrypted. Someone monitoring the network traffic will notice the domain name only.
Note: If using this method, your password will be stored in plain text in the local repository's .git/config
file. For this reason, you should create a FreedomBox user who has only access to the gitweb and never use an admin account.
For GNOME users (Advanced)
GNOME "Passwords and Keys" utility can be used to store the username and password. See this StackOverflow Answer for details on how to do it.
Though your repositories are primarily hosted on your own FreedomBox, you can configure a repository on another Git hosting system like GitLab as a mirror.
In FreedomBox, some of the default features of gitweb have been changed:
Enabled: Blame feature to show what revision and author last modified each line of a file
Enabled: Pickaxe feature to list the commits that introduced or removed a given string
Enabled: Highlight feature to perform syntax highlighting on blobs
Disabled: Snapshot feature that provides a download of a compressed tar file for a given revision (due to high resource usage).
These features can be changed on a per-repository bases by an administrator by editing the git configuration file for the repository on FreedomBox. See manual page for gitweb.conf(5) for more details on syntax and features. For example, to re-enable the snapshot feature on myrepo
repository, login to a FreedomBox terminal via SSH or web console as administrator and edit the file /var/lib/git/myrepo/config
to contain the following section:
[gitweb] snapshot = tgz
Upstream project: https://git-scm.com/
Upstream end user documentation: https://git-scm.com/docs/gitweb
Debian community wikis: https://wiki.debian.org/CategoryGit