From 77d6d41a343c723b60911962e4bfd44ad716cbef Mon Sep 17 00:00:00 2001 From: Ilya Napolov Date: Wed, 4 Feb 2026 11:01:57 +0300 Subject: [PATCH] fix(lfs): fixed LFS uploading on Windows because of opened file handler --- pkg/git/lfs.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/git/lfs.go b/pkg/git/lfs.go index 14846c120..3c800c807 100644 --- a/pkg/git/lfs.go +++ b/pkg/git/lfs.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "io" + "io/fs" "path" "path/filepath" "strconv" @@ -147,9 +148,15 @@ func (t *lfsTransfer) Upload(oid string, size int64, r io.Reader, _ transfer.Arg return err } - obj, err := t.storage.Open(tempName) + exist, err := t.storage.Exists(tempName) if err != nil { - t.logger.Errorf("error opening object: %v", err) + t.logger.Errorf("error accessing object: %v", err) + return err + } + + if !exist { + err = fs.ErrNotExist + t.logger.Errorf("error accessing object: %v %v", err, tempName) return err } @@ -167,7 +174,7 @@ func (t *lfsTransfer) Upload(oid string, size int64, r io.Reader, _ transfer.Arg } expectedPath := path.Join("objects", pointer.RelativePath()) - if err := t.storage.Rename(obj.Name(), expectedPath); err != nil { + if err := t.storage.Rename(tempName, expectedPath); err != nil { t.logger.Errorf("error renaming object: %v", err) _ = t.store.DeleteLFSObjectByOid(t.ctx, t.dbx, t.repo.ID(), pointer.Oid) return err