From 5a9b3bfa50ff45c65d8d1b17ad960fb05f38ef84 Mon Sep 17 00:00:00 2001 From: Giteabot Date: Sun, 30 Mar 2025 13:51:08 +0800 Subject: [PATCH] add additional ReplaceAll in pathsep to cater for different pathsep (#34061) (#34070) Backport #34061 by eeyrjmr The doctor storage check reconstructs the lfs oid by producing a string where the path separator is stripped ab/dc/efg -> abdcefg. Windows however uses a backslash and thus the ReplaceAll call doesn't produce the correct oid resulting in all lfs objects being classed as orphaned. This PR allows this to be more OS agnostic. Closes #34039 Co-authored-by: JonRB <4564448+eeyrjmr@users.noreply.github.com> --- services/doctor/storage.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/doctor/storage.go b/services/doctor/storage.go index 3f3b562c37..77fc6d65df 100644 --- a/services/doctor/storage.go +++ b/services/doctor/storage.go @@ -121,7 +121,7 @@ func checkStorage(opts *checkStorageOptions) func(ctx context.Context, logger lo storer: storage.LFS, isOrphaned: func(path string, obj storage.Object, stat fs.FileInfo) (bool, error) { // The oid of an LFS stored object is the name but with all the path.Separators removed - oid := strings.ReplaceAll(path, "/", "") + oid := strings.ReplaceAll(strings.ReplaceAll(path, "\\", ""), "/", "") exists, err := git.ExistsLFSObject(ctx, oid) return !exists, err },