gitea/modules/git
Giteabot 272ae03341
Make gogit Repository.GetBranchNames consistent (#28348) (#28386)
Backport #28348 by @AdamMajer

nogogit GetBranchNames() lists branches sorted in reverse commit date
order. On the other hand the gogit implementation doesn't apply any
ordering resulting in unpredictable behaviour. In my case, the unit
tests requiring particular order fail

    repo_branch_test.go:24:
                Error Trace:
               ./gitea/modules/git/repo_branch_test.go:24
                Error:          elements differ

                                extra elements in list A:
                                ([]interface {}) (len=1) {
                                 (string) (len=6) "master"
                                }

                                extra elements in list B:
                                ([]interface {}) (len=1) {
                                 (string) (len=7) "branch1"
                                }

                                listA:
                                ([]string) (len=2) {
                                 (string) (len=6) "master",
                                 (string) (len=7) "branch2"
                                }

                                listB:
                                ([]string) (len=2) {
                                 (string) (len=7) "branch1",
                                 (string) (len=7) "branch2"
                                }
                Test:           TestRepository_GetBranches

To fix this, we sort branches based on their commit date in gogit
implementation.

Fixes: #28318

Co-authored-by: Adam Majer <amajer@suse.de>
2023-12-07 13:03:27 -05: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 Refactor and tidy-up the merge/update branch code (#22568) 2023-03-07 15:07:35 -05: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
README.md move code.gitea.io/git to code.gitea.io/gitea/modules/git (#6364) 2019-03-27 17:33:00 +08:00
batch_reader.go Make git batch operations use parent context timeout instead of default timeout (#26325) 2023-08-04 14:50:41 +02:00
blame.go Read `previous` info from git blame (#28306) (#28310) 2023-12-01 08:27:35 +01:00
blame_test.go Read `previous` info from git blame (#28306) (#28310) 2023-12-01 08:27:35 +01: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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
blob_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
blob_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
command.go Clarify the git command Stdin hanging problem (#26967) 2023-09-08 13:20:38 +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 Convert git commit summary to valid UTF8. (#28356) (#28358) 2023-12-05 09:19:08 +00:00
commit_convert_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_info.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_info_gogit.go Replace `interface{}` with `any` (#25686) 2023-07-04 18:36:08 +00:00
commit_info_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_info_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_reader.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
commit_test.go Add merge files files to GetCommitFileStatus (#20515) 2023-08-24 10:03:49 +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 Update tool dependencies, lock govulncheck and actionlint (#25655) 2023-07-09 11:58:06 +00: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 Replace `interface{}` with `any` (#25686) 2023-07-04 18:36:08 +00:00
last_commit_cache_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Remove redundant nil check in `WalkGitLog` (#26773) 2023-08-29 11:03:43 +00:00
notes.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
notes_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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
parse_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
parse_gogit_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
parse_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
parse_nogogit_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
ref.go Fix compatible for webhook ref type (#25195) 2023-06-13 06:05:28 +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 Fix git 2.11 error when checking IsEmpty (#27393) (#27397) 2023-10-02 22:36:18 +02: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 Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
repo_base.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_base_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_base_nogogit.go Update tool dependencies, lock govulncheck and actionlint (#25655) 2023-07-09 11:58:06 +00:00
repo_blame.go Remove `git.FileBlame` (#25841) 2023-07-12 19:07:29 +02:00
repo_blob.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_blob_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_blob_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_blob_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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) (#28386) 2023-12-07 13:03:27 -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 Pass 'not' to commit count (#24473) 2023-05-08 07:10:53 +00:00
repo_commit_gogit.go Fix commit retrieval by tag (#21804) 2023-03-02 13:32:21 +08:00
repo_commit_nogogit.go Fix commit retrieval by tag (#21804) 2023-03-02 13:32:21 +08: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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_compare.go Support getting changed files when commit ID is `EmptySHA` (#26290) 2023-08-04 02:53:15 +00:00
repo_compare_test.go Support getting changed files when commit ID is `EmptySHA` (#26290) 2023-08-04 02:53:15 +00:00
repo_gpg.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_hook.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_index.go Update tool dependencies, lock govulncheck and actionlint (#25655) 2023-07-09 11:58:06 +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 Merge different languages for language stats (#24900) 2023-05-24 19:37:36 +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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_ref_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_tag_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repo_tag_nogogit.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_tag_test.go Use more specific test methods (#24265) 2023-04-22 17:56:27 -04:00
repo_test.go Faster git.GetDivergingCommits (#24482) 2023-05-04 05:08:41 +00:00
repo_tree.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
repo_tree_gogit.go Use complete SHA to create and query commit status (#22244) 2022-12-27 21:12:49 +08:00
repo_tree_nogogit.go Use complete SHA to create and query commit status (#22244) 2022-12-27 21:12:49 +08:00
sha1.go Support getting changed files when commit ID is `EmptySHA` (#26290) 2023-08-04 02:53:15 +00:00
sha1_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sha1_nogogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sha1_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
submodule_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tag.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tag_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_blob.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_blob_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +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 Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_entry_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_gogit.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
tree_nogogit.go Refactor git command package to improve security and maintainability (#22678) 2023-02-04 10:30:43 +08:00
utils.go Replace `interface{}` with `any` (#25686) 2023-07-04 18:36:08 +00:00

README.md

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.