1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-08-05 09:55:20 +02:00

chore: Refactor Is{Reference,Branch}Exist (#8425)

- Instead of invoking a new git command to check if a reference exists, use the already opened git repository that uses a batch check to check if the reference exists.
- Instead of invoking a new git command to check if a branch exists, use the already opened git repository that uses a batch check to check if the branch exists.
- Do not depend on `IsReferenceExist` as its no longer used by any other function.
- Specify `--quiet` to not waste Git's time on printing something we do not use.
- Run it via `Run` so no buffers are created for stdout and stderr.
- Add a test that verifies `IsBranchExist` works and does not work for other types of references.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8425
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz>
This commit is contained in:
Gusted 2025-07-06 07:16:43 +02:00 committed by Earl Warren
parent 212e8ac348
commit 74981d9e97
6 changed files with 21 additions and 13 deletions

View file

@ -1,4 +1,5 @@
// Copyright 2018 The Gitea Authors. All rights reserved.
// Copyright 2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package git
@ -195,3 +196,17 @@ func TestRepository_IsReferenceExist(t *testing.T) {
})
}
}
func TestIsBranchExist(t *testing.T) {
repo1Path := filepath.Join(testReposDir, "repo1_bare")
assert.True(t, IsBranchExist(t.Context(), repo1Path, "branch1"))
assert.True(t, IsBranchExist(t.Context(), repo1Path, "branch2"))
assert.True(t, IsBranchExist(t.Context(), repo1Path, "master"))
assert.False(t, IsBranchExist(t.Context(), repo1Path, "HEAD"))
assert.False(t, IsBranchExist(t.Context(), repo1Path, "153f451b9ee7fa1da317ab17a127e9fd9d384310"))
assert.False(t, IsBranchExist(t.Context(), repo1Path, "153f451b9ee7fa1da317ab17a127e9fd9d384310"))
assert.False(t, IsBranchExist(t.Context(), repo1Path, "signed-tag"))
assert.False(t, IsBranchExist(t.Context(), repo1Path, "test"))
}