try to map the git howto into the template authored by anarcat's avatar anarcat
# git.torproject.org and associated services
[[_TOC_]]
## Overview
Our git setup consists of three interdependent services:
* git-rw.torproject.org: ssh accessible and writeable git repositories
......@@ -13,6 +7,10 @@ Our git setup consists of three interdependent services:
When a developer pushes to git-rw, the repository is mirrored to git and so
made available via the gitweb service.
[[_TOC_]]
# Howto
## Regular repositories
### Creating a new repository
......@@ -329,7 +327,26 @@ similarly.
Note that repos can also be migrated (and archived) to GitLab, see
[the GitLab migration procedure](howto/gitlab/#how-to-migrate-a-git-repository-from-legacy-to-gitlab) for details.
## Admin details
## Potential problems to solve
### gitweb out of sync
If vineale is down for an extended period of time, it's a good idea to trigger
a re-sync of all the repositories to ensure that the latest version is available
to clone from the anonymous endpoints.
Create an empty commit in the gitolite-admin.git repository using:
```
git commit -m "trigger resync" --allow-empty
```
and push this commit. This will run through the post-commit hook that includes
syncing everything.
# Reference
## Design
git-rw runs on `cupani.torproject.org` and runs as the git user. Users in the
gitolite (gid 1504) group can become the git user. The gitolite installation
......@@ -362,20 +379,3 @@ and only gitolite configuration restricts further access.
Access to push to this repository is controlled by the
`gitolite-admin` repository entry in the gitolite configuration file,
and not by LDAP groups.
## Potential problems to solve
### gitweb out of sync
If vineale is down for an extended period of time, it's a good idea to trigger
a re-sync of all the repositories to ensure that the latest version is available
to clone from the anonymous endpoints.
Create an empty commit in the gitolite-admin.git repository using:
```
git commit -m "trigger resync" --allow-empty
```
and push this commit. This will run through the post-commit hook that includes
syncing everything.