Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-01-29 16:17:19 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-02-01 11:10:32 +0300
commit92a82b098e0c596add78a0cf813d9871f23035bb (patch)
treecdee8824164432da4d70ef204220d501f956b0de
parent48b61b5c955bfc2117f05dd93c6caf61f91229ba (diff)
git: Remove dangerous NewBranchReferenceName function
The `NewBranchReferenceName()` has dangerous semantics, as it may sometimes convert the given reference name to a fully-qualified reference by prepending "refs/heads/", and sometimes it won't. All users have been converted to the new `NewReferenceNameFromBranchName()` function, so let's remove the old and dangerous function.
-rw-r--r--internal/git/reference.go15
-rw-r--r--internal/git/reference_test.go39
2 files changed, 0 insertions, 54 deletions
diff --git a/internal/git/reference.go b/internal/git/reference.go
index d575f5f68..4822a171f 100644
--- a/internal/git/reference.go
+++ b/internal/git/reference.go
@@ -22,21 +22,6 @@ func (r Revision) String() string {
// Revision does and must always contain a fully qualified reference.
type ReferenceName string
-// NewBranchReferenceName returns a new ReferenceName for the given branch. The
-// branch may either be a fully qualified branch name ("refs/heads/master") or
-// an unqualified name ("master"). In the latter case, the returned
-// ReferenceName will still be a fully qualified reference by prepending
-// "refs/heads".
-func NewBranchReferenceName(branch string) ReferenceName {
- if strings.HasPrefix(branch, "refs/heads/") {
- return ReferenceName(branch)
- }
- if strings.HasPrefix(branch, "heads/") {
- return ReferenceName("refs/" + branch)
- }
- return ReferenceName("refs/heads/" + branch)
-}
-
// NewReferenceNameFromBranchName returns a new ReferenceName from a given
// branch name. Note that branch is treated as an unqualified branch name.
// This function will thus always prepend "refs/heads/".
diff --git a/internal/git/reference_test.go b/internal/git/reference_test.go
index 1d2019025..01687a2e3 100644
--- a/internal/git/reference_test.go
+++ b/internal/git/reference_test.go
@@ -52,45 +52,6 @@ func TestCheckRefFormat(t *testing.T) {
}
}
-func TestReferenceName_NewBranchReferenceName(t *testing.T) {
- for _, tc := range []struct {
- desc string
- reference string
- expected string
- }{
- {
- desc: "fully qualified reference",
- reference: "refs/heads/master",
- expected: "refs/heads/master",
- },
- {
- desc: "partly qualified reference",
- reference: "heads/master",
- expected: "refs/heads/master",
- },
- {
- desc: "unqualified reference",
- reference: "master",
- expected: "refs/heads/master",
- },
- {
- desc: "weird branch name",
- reference: "refs/master",
- expected: "refs/heads/refs/master",
- },
- {
- desc: "tag is treated as a branch",
- reference: "refs/tags/master",
- expected: "refs/heads/refs/tags/master",
- },
- } {
- t.Run(tc.desc, func(t *testing.T) {
- ref := NewBranchReferenceName(tc.reference)
- require.Equal(t, ref.String(), tc.expected)
- })
- }
-}
-
func TestReferenceName_NewReferenceNameFromBranchName(t *testing.T) {
for _, tc := range []struct {
desc string