Skip to content

Commit c480136

Browse files
authored
Fix create branch with no commitID (treeverse#1280)
1 parent e0ef9bd commit c480136

File tree

4 files changed

+8
-3
lines changed

4 files changed

+8
-3
lines changed

graveler/errors.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ var (
2020
ErrInvalidRef = fmt.Errorf("ref: %w", ErrInvalidValue)
2121
ErrInvalidCommitID = fmt.Errorf("commit id: %w", ErrInvalidValue)
2222
ErrCommitNotFound = fmt.Errorf("commit %w", ErrNotFound)
23+
ErrCreateBranchNoCommit = fmt.Errorf("can't create a branch without commit")
2324
ErrRepositoryNotFound = fmt.Errorf("repository %w", ErrNotFound)
2425
ErrBranchNotFound = fmt.Errorf("branch %w", ErrNotFound)
2526
ErrTagNotFound = fmt.Errorf("tag %w", ErrNotFound)

graveler/graveler.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,9 @@ func (g *Graveler) CreateBranch(ctx context.Context, repositoryID RepositoryID,
600600
if err != nil {
601601
return nil, err
602602
}
603-
603+
if reference.CommitID() == "" {
604+
return nil, ErrCreateBranchNoCommit
605+
}
604606
newBranch := Branch{
605607
CommitID: reference.CommitID(),
606608
StagingToken: generateStagingToken(repositoryID, branchID),

graveler/graveler_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,8 @@ func TestGraveler_CreateBranch(t *testing.T) {
243243
gravel := graveler.NewGraveler(branchLocker, nil,
244244
nil,
245245
&testutil.RefsFake{
246-
Err: graveler.ErrNotFound,
246+
Err: graveler.ErrNotFound,
247+
CommitID: "8888888798e3aeface8e62d1c7072a965314b4",
247248
},
248249
)
249250
_, err := gravel.CreateBranch(context.Background(), "", "", "")

graveler/testutil/fakes.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,8 @@ func (m *RefsFake) RevParse(context.Context, graveler.RepositoryID, graveler.Ref
195195
if m.RefType == graveler.ReferenceTypeBranch {
196196
branch = DefaultBranchID
197197
}
198-
return NewFakeReference(m.RefType, branch, ""), nil
198+
199+
return NewFakeReference(m.RefType, branch, m.CommitID), nil
199200
}
200201

201202
func (m *RefsFake) GetRepository(context.Context, graveler.RepositoryID) (*graveler.Repository, error) {

0 commit comments

Comments
 (0)