0
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-07-21 14:34:43 +02:00

Update lfs pointer checks

This commit is contained in:
bytedream 2025-05-06 14:08:30 +02:00
parent 4d17f51417
commit 3d64a84929

View File

@ -521,30 +521,26 @@ func CreateOrUpdateFile(ctx context.Context, t *TemporaryUploadRepository, file
return err return err
} }
var pointer *lfs.Pointer var pointer lfs.Pointer
// Get existing lfs pointer if the old path is in lfs // Get existing lfs pointer if the old path is in lfs
if oldEntry != nil && attributesMap[file.Options.fromTreePath] != nil && attributesMap[file.Options.fromTreePath].Get(attribute.Filter).ToString().Value() == "lfs" { if oldEntry != nil && attributesMap[file.Options.fromTreePath] != nil && attributesMap[file.Options.fromTreePath].Get(attribute.Filter).ToString().Value() == "lfs" {
p, err := lfs.ReadPointer(treeObjectContentReader) if pointer, err = lfs.ReadPointer(treeObjectContentReader); err != nil {
if err != nil {
return err return err
} }
pointer = &p
} }
if attributesMap[file.Options.treePath] != nil && attributesMap[file.Options.treePath].Get(attribute.Filter).ToString().Value() == "lfs" { if attributesMap[file.Options.treePath] != nil && attributesMap[file.Options.treePath].Get(attribute.Filter).ToString().Value() == "lfs" {
// Only generate a new lfs pointer if the old path isn't in lfs // Only generate a new lfs pointer if the old path isn't in lfs
if pointer == nil { if !pointer.IsValid() {
p, err := lfs.GeneratePointer(treeObjectContentReader) if pointer, err = lfs.GeneratePointer(treeObjectContentReader); err != nil {
if err != nil {
return err return err
} }
pointer = &p
} }
lfsMetaObject = &git_model.LFSMetaObject{Pointer: *pointer, RepositoryID: repoID} lfsMetaObject = &git_model.LFSMetaObject{Pointer: pointer, RepositoryID: repoID}
treeObjectContentReader = strings.NewReader(pointer.StringContent()) treeObjectContentReader = strings.NewReader(pointer.StringContent())
} else if pointer != nil { // old tree path was in lfs, new is not } else if pointer.IsValid() { // old path was in lfs, new is not
treeObjectContentReader, err = lfs.ReadMetaObject(*pointer) treeObjectContentReader, err = lfs.ReadMetaObject(pointer)
if err != nil { if err != nil {
return err return err
} }