| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
gitserver exposes an "exec" API over HTTP for running git commands against clones of repositories. gitserver also exposes APIs for the management of clones.
The management of clones comprises most of the complexity in gitserver since:
Additionally we have invested heavily in the observability of gitserver. Nearly every operation Sourcegraph does runs one or more git commands. So we have detailed oberservability in prometheus, net/event, lightstep, honeycomb and stderr logs.
We normalize repository names when storing them on disk. Always use protocol.NormalizeRepo. The $GIT_DIR of a repository is at reposRoot/normalized_name/.git.
When doing an operation on a file or directory which may be concurrently read/written please use atomic filesystem patterns. This usually involves heavy use of os.Rename. Search for existing uses of os.Rename to see examples.
| Back | FazBrowse Home | New Git URL |