diff options
author | Evan Read <eread@gitlab.com> | 2022-10-24 09:27:03 +0300 |
---|---|---|
committer | Evan Read <eread@gitlab.com> | 2022-10-24 09:28:36 +0300 |
commit | 90964186c61d5c2b93a744944666461fc2fab190 (patch) | |
tree | 66a968633d9bf48e29efc3b3a6764dfe85e044f7 /doc/serverside_git_usage.md | |
parent | a09e2b67f58008784e7384c34a8031a839a4fd8d (diff) |
Complete fix of Markdownlint violations in the docs
Diffstat (limited to 'doc/serverside_git_usage.md')
-rw-r--r-- | doc/serverside_git_usage.md | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/doc/serverside_git_usage.md b/doc/serverside_git_usage.md index 4826fc610..889dc0035 100644 --- a/doc/serverside_git_usage.md +++ b/doc/serverside_git_usage.md @@ -1,14 +1,15 @@ -## Server side Git usage +# Server side Git usage Gitaly uses three implementations to read and write to Git repositories: + 1. `git(1)` - The same Git used by clients all over the world 1. [LibGit2](https://github.com/libgit2/libgit2) - a linkable library used through Rugged and Git2Go 1. On ad-hoc basis, part of Git is implemented in this repository if the implementation is easy and stable. For example the [pktline](../internal/git/pktline) package. -### Using Git +## Using Git -#### Plumbing v.s. porcelain +### Plumbing v.s. porcelain `git(1)` is the default choice to access repositories for Gitaly. Not all commands that are available should be used in the Gitaly code base. @@ -20,18 +21,18 @@ are intended for scripted use or to build another porcelain. Generally speaking, Gitaly should only use plumbing commands. `man 1 git` contains a section on the low level plumbing. However, a lot of -git's plumbing-like functionality is exposed as commands not marked as +Git's plumbing-like functionality is exposed as commands not marked as plumbing, but whose API reliability can be considered the same. E.g. `git log`'s `--pretty=` formats, `git config -l -z`, the documented exit codes of `git remote` etc.. We should use good judgement when choosing what commands and command -functionality to use, with the aim of not having gitaly break due to +functionality to use, with the aim of not having Gitaly break due to e.g. an error message being rephrased or functionality the upstream `git` maintainers don't consider plumbing-like being removed or altered. -#### Executing Git commands +### Executing Git commands When executing Git, developers should always use the `git.CommandFactory` and sibling interfaces. These make sure Gitaly is protected against command injection, the @@ -39,7 +40,7 @@ correct `git` is used, and correct setup for observable command invocations are used. When working with `git(1)` in Ruby, please be sure to read the [Ruby shell scripting guide](https://docs.gitlab.com/ee/development/shell_commands.html). -### Using LibGit2 +## Using LibGit2 Gitaly uses [Git2Go](https://github.com/libgit2/git2go) for Golang, and [Rugged](https://github.com/libgit2/rugged) which both are thin adapters to call |