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
}
var pointer *lfs.Pointer
var pointer lfs.Pointer
// 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" {
p, err := lfs.ReadPointer(treeObjectContentReader)
if err != nil {
if pointer, err = lfs.ReadPointer(treeObjectContentReader); err != nil {
return err
}
pointer = &p
}
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
if pointer == nil {
p, err := lfs.GeneratePointer(treeObjectContentReader)
if err != nil {
if !pointer.IsValid() {
if pointer, err = lfs.GeneratePointer(treeObjectContentReader); err != nil {
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())
} else if pointer != nil { // old tree path was in lfs, new is not
treeObjectContentReader, err = lfs.ReadMetaObject(*pointer)
} else if pointer.IsValid() { // old path was in lfs, new is not
treeObjectContentReader, err = lfs.ReadMetaObject(pointer)
if err != nil {
return err
}