forgejo/modules/git
Gusted a1cd6f4e3a
[GITEA] Drop sha256-simd in favor of stdlib
- In Go 1.21 the crypto/sha256 [got a massive
improvement](https://go.dev/doc/go1.21#crypto/sha256) by utilizing the
SHA instructions for AMD64 CPUs, which sha256-simd already was doing.
The performance is now on par and I think it's preferable to use the
standard library rather than a package when possible.

```
cpu: AMD Ryzen 5 3600X 6-Core Processor
                │  simd.txt   │               go.txt                │
                │   sec/op    │    sec/op     vs base               │
Hash/8Bytes-12    63.25n ± 1%    73.38n ± 1%  +16.02% (p=0.002 n=6)
Hash/64Bytes-12   98.73n ± 1%   105.30n ± 1%   +6.65% (p=0.002 n=6)
Hash/1K-12        567.2n ± 1%    572.8n ± 1%   +0.99% (p=0.002 n=6)
Hash/8K-12        4.062µ ± 1%    4.062µ ± 1%        ~ (p=0.396 n=6)
Hash/1M-12        512.1µ ± 0%    510.6µ ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        2.556m ± 1%    2.564m ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       5.112m ± 0%    5.127m ± 0%        ~ (p=0.093 n=6)
geomean           13.82µ         14.27µ        +3.28%

                │   simd.txt   │               go.txt                │
                │     B/s      │     B/s       vs base               │
Hash/8Bytes-12    120.6Mi ± 1%   104.0Mi ± 1%  -13.81% (p=0.002 n=6)
Hash/64Bytes-12   618.2Mi ± 1%   579.8Mi ± 1%   -6.22% (p=0.002 n=6)
Hash/1K-12        1.682Gi ± 1%   1.665Gi ± 1%   -0.98% (p=0.002 n=6)
Hash/8K-12        1.878Gi ± 1%   1.878Gi ± 1%        ~ (p=0.310 n=6)
Hash/1M-12        1.907Gi ± 0%   1.913Gi ± 1%        ~ (p=0.485 n=6)
Hash/5M-12        1.911Gi ± 1%   1.904Gi ± 0%        ~ (p=0.093 n=6)
Hash/10M-12       1.910Gi ± 0%   1.905Gi ± 0%        ~ (p=0.093 n=6)
geomean           1.066Gi        1.032Gi        -3.18%
```

(cherry picked from commit abd94ff5b59c86e793fd9bf12187ea6cfd1f3fa1)
(cherry picked from commit 15e81637abf70576a564cf9eecaa9640228afb5b)

Conflicts:
	go.mod
	https://codeberg.org/forgejo/forgejo/pulls/1581
(cherry picked from commit 325d92917f655c999b81b08832ee623d6b669f0f)

Conflicts:
	modules/context/context_cookie.go
	https://codeberg.org/forgejo/forgejo/pulls/1617
(cherry picked from commit 358819e8959886faa171ac16541097500d0a703e)
(cherry picked from commit 362fd7aae17832fa922fa017794bc564ca43060d)
(cherry picked from commit 4f64ee294ee05c93042b6ec68f0a179ec249dab9)
(cherry picked from commit 4bde77f7b1)
(cherry picked from commit 1311e30a81)
(cherry picked from commit 57b69e334c2973118488b9b5dbdc8a2c88135756)
(cherry picked from commit 52dc892fadecf39e89c3c351edc9efb42522257b)
(cherry picked from commit 77f54f4187869c6eabcc837742fd3f908093a76c)
(cherry picked from commit 0d0392f3a510ce3683bb649dee1e65b45dd91354)

Conflicts:
	go.mod
	https://codeberg.org/forgejo/forgejo/pulls/2034
(cherry picked from commit 92798364e8fe3188a2100b54f3adea943f8309e9)
(cherry picked from commit 43d218127752aa9251c4c3ef71b9c060f109dffc)
(cherry picked from commit 45c88b86a35729fc0b2dc6b72bc33caf9f69265f)
2024-01-15 16:11:57 +00:00
..
foreachref Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
internal Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
pipeline Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
tests/repos Support .git-blame-ignore-revs file (#26395) 2023-09-16 17:42:34 +00:00
url Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
batch_reader.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
blame.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
blame_test.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
blob.go Fix profile render when the README.md size is larger than 1024 bytes (#25131) 2023-06-13 09:02:25 +00:00
blob_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
blob_nogogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
blob_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
command.go Add option to disable ambiguous unicode characters detection (#28454) 2023-12-17 14:38:54 +00:00
command_race_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
command_test.go Improve git log for debugging (#24095) 2023-04-13 19:17:27 -04:00
commit.go [GITEA] Detect file rename and show in history 2024-01-15 16:11:57 +00:00
commit_convert_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
commit_info.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_info_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
commit_info_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
commit_info_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_reader.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
commit_test.go [GITEA] Detect file rename and show in history 2024-01-15 16:11:57 +00:00
diff.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
diff_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
error.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
git.go Only use SHA256 feature when git >= 2.42 (#28466) 2023-12-14 16:51:05 +08:00
git_test.go Support changing git config through app.ini, use diff.algorithm=histogram by default (#24860) 2023-05-23 16:30:19 +00:00
hook.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
last_commit_cache.go [GITEA] Drop sha256-simd in favor of stdlib 2024-01-15 16:11:57 +00:00
last_commit_cache_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
last_commit_cache_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
log_name_status.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
notes.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
notes_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
notes_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
notes_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
object_format.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
object_id.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
object_id_gogit.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
object_id_test.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
parse_gogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
parse_gogit_test.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
parse_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
parse_nogogit_test.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
README.md move code.gitea.io/git to code.gitea.io/gitea/modules/git (#6364) 2019-03-27 17:33:00 +08:00
ref.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
ref_test.go Use the type RefName for all the needed places and fix pull mirror sync bugs (#24634) 2023-05-26 01:04:48 +00:00
remote.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_archive.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_attribute.go Refactor legacy strange git operations (#22756) 2023-02-06 10:23:17 +08:00
repo_attribute_test.go Replace assert.Fail with assert.FailNow (#27578) 2023-10-11 11:02:24 +00:00
repo_base.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_base_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_base_nogogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_blame.go Remove git.FileBlame (#25841) 2023-07-12 19:07:29 +02:00
repo_blob.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_blob_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_blob_nogogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_blob_test.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_branch.go Use the type RefName for all the needed places and fix pull mirror sync bugs (#24634) 2023-05-26 01:04:48 +00:00
repo_branch_gogit.go Make gogit Repository.GetBranchNames consistent (#28348) 2023-12-07 12:08:17 -05:00
repo_branch_nogogit.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_branch_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_commit.go Integration Test for Commit Search containing Square Brackets (#28751) 2024-01-11 11:04:45 +08:00
repo_commit_gogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_commit_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_commit_test.go Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
repo_commitgraph.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_commitgraph_gogit.go Update go dependencies (#28518) 2023-12-19 09:18:42 +08:00
repo_compare.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
repo_compare_test.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
repo_gpg.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_hook.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_index.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_language_stats.go Merge different languages for language stats (#24900) 2023-05-24 19:37:36 +00:00
repo_language_stats_gogit.go Merge different languages for language stats (#24900) 2023-05-24 19:37:36 +00:00
repo_language_stats_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_language_stats_test.go Merge different languages for language stats (#24900) 2023-05-24 19:37:36 +00:00
repo_object.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_ref.go Show branches and tags that contain a commit (#25180) 2023-07-27 12:47:41 +02:00
repo_ref_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
repo_ref_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_ref_test.go Fix commit retrieval by tag (#21804) 2023-03-02 13:32:21 +08:00
repo_stats.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_stats_test.go Fix commit retrieval by tag (#21804) 2023-03-02 13:32:21 +08:00
repo_tag.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_tag_gogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_tag_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_tag_test.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_test.go Faster git.GetDivergingCommits (#24482) 2023-05-04 05:08:41 +00:00
repo_tree.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_tree_gogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
repo_tree_nogogit.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
signature.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
signature_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
signature_nogogit.go Update tool dependencies, lock govulncheck and actionlint (#25655) 2023-07-09 11:58:06 +00:00
submodule.go Upgrade to golangci-lint@v1.55.0 (#27756) 2023-10-24 02:54:59 +00:00
submodule_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tag.go Improve ObjectFormat interface (#28496) 2023-12-19 07:20:47 +00:00
tag_test.go Adjust object format interface (#28469) 2023-12-17 11:56:08 +00:00
tree.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
tree_blob.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_blob_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
tree_blob_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_entry.go Remember to attach the parent tree when converting TreeEntry() -> Tree() (#22902) 2023-02-14 21:23:04 +00:00
tree_entry_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
tree_entry_mode.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_entry_nogogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
tree_entry_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_gogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
tree_nogogit.go Abstract hash function usage (#28138) 2023-12-13 21:02:00 +00:00
utils.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00

Git Module

This module is merged from https://github.com/go-gitea/git which is a Go module to access Git through shell commands. Now it's a part of gitea's main repository for easier pull request.