mirror of
https://gitea.com/gitea/docs.git
synced 2026-07-22 02:37:42 +00:00
Support changing git config through app.ini, use diff.algorithm=histogram by default (#24860)
Close #13454 , Close #23255, Close #14697 (and maybe more related issues) Many users have the requirement to customize the git config. This PR introduces an easy way: put the options in Gitea's app.ini `[git.config]`, then the config options will be applied to git config. And it can support more flexible default config values, eg: now `diff.algorithm=histogram` by default. According to: https://stackoverflow.com/a/32367597/4754037 , `histogram diff` is efficient and doesn't like to cause server-side problems. --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: Giteabot <teabot@gitea.io>
This commit is contained in:
@@ -1054,12 +1054,7 @@ Default templates for project boards:
|
|||||||
- `DISABLE_CORE_PROTECT_NTFS`: **false** Set to true to forcibly set `core.protectNTFS` to false.
|
- `DISABLE_CORE_PROTECT_NTFS`: **false** Set to true to forcibly set `core.protectNTFS` to false.
|
||||||
- `DISABLE_PARTIAL_CLONE`: **false** Disable the usage of using partial clones for git.
|
- `DISABLE_PARTIAL_CLONE`: **false** Disable the usage of using partial clones for git.
|
||||||
|
|
||||||
## Git - Reflog settings (`git.reflog`)
|
### Git - Timeout settings (`git.timeout`)
|
||||||
|
|
||||||
- `ENABLED`: **true** Set to true to enable Git to write changes to reflogs in each repo.
|
|
||||||
- `EXPIRATION`: **90** Reflog entry lifetime, in days. Entries are removed opportunistically by Git.
|
|
||||||
|
|
||||||
## Git - Timeout settings (`git.timeout`)
|
|
||||||
|
|
||||||
- `DEFAULT`: **360**: Git operations default timeout seconds.
|
- `DEFAULT`: **360**: Git operations default timeout seconds.
|
||||||
- `MIGRATE`: **600**: Migrate external repositories timeout seconds.
|
- `MIGRATE`: **600**: Migrate external repositories timeout seconds.
|
||||||
@@ -1068,6 +1063,18 @@ Default templates for project boards:
|
|||||||
- `PULL`: **300**: Git pull from internal repositories timeout seconds.
|
- `PULL`: **300**: Git pull from internal repositories timeout seconds.
|
||||||
- `GC`: **60**: Git repository GC timeout seconds.
|
- `GC`: **60**: Git repository GC timeout seconds.
|
||||||
|
|
||||||
|
### Git - Reflog settings (`git.reflog`)
|
||||||
|
|
||||||
|
- `ENABLED`: **true** Set to true to enable Git to write changes to reflogs in each repo.
|
||||||
|
- `EXPIRATION`: **90** Reflog entry lifetime, in days. Entries are removed opportunistically by Git.
|
||||||
|
|
||||||
|
### Git - Config options (`git.config`)
|
||||||
|
|
||||||
|
The key/value pairs in this section will be used as git config.
|
||||||
|
This section only does "set" config, a removed config key from this section won't be removed from git config automatically. The format is `some.configKey = value`.
|
||||||
|
|
||||||
|
- `diff.algorithm`: **histogram**
|
||||||
|
|
||||||
## Metrics (`metrics`)
|
## Metrics (`metrics`)
|
||||||
|
|
||||||
- `ENABLED`: **false**: Enables /metrics endpoint for prometheus.
|
- `ENABLED`: **false**: Enables /metrics endpoint for prometheus.
|
||||||
|
|||||||
@@ -282,6 +282,22 @@ Place custom files in corresponding sub-folder under `custom/options`.
|
|||||||
|
|
||||||
To add custom .gitignore, add a file with existing [.gitignore rules](https://git-scm.com/docs/gitignore) in it to `$GITEA_CUSTOM/options/gitignore`
|
To add custom .gitignore, add a file with existing [.gitignore rules](https://git-scm.com/docs/gitignore) in it to `$GITEA_CUSTOM/options/gitignore`
|
||||||
|
|
||||||
|
## Customizing the git configuration
|
||||||
|
|
||||||
|
Starting with Gitea 1.20, you can customize the git configuration via the `git.config` section.
|
||||||
|
|
||||||
|
### Enabling signed git pushes
|
||||||
|
|
||||||
|
To enable signed git pushes, set these two options:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[git.config]
|
||||||
|
receive.advertisePushOptions = true
|
||||||
|
receive.certNonceSeed = <randomstring>
|
||||||
|
```
|
||||||
|
|
||||||
|
`certNonceSeed` should be set to a random string and be kept secret.
|
||||||
|
|
||||||
### Labels
|
### Labels
|
||||||
|
|
||||||
Starting with Gitea 1.19, you can add a file that follows the [YAML label format](https://github.com/go-gitea/gitea/blob/main/options/label/Advanced.yaml) to `$GITEA_CUSTOM/options/label`:
|
Starting with Gitea 1.19, you can add a file that follows the [YAML label format](https://github.com/go-gitea/gitea/blob/main/options/label/Advanced.yaml) to `$GITEA_CUSTOM/options/label`:
|
||||||
|
|||||||
Reference in New Issue
Block a user