From 094471e4f8b8883c8f5452a8661615455648143f Mon Sep 17 00:00:00 2001 From: davrot Date: Tue, 28 Jan 2025 17:32:29 +0000 Subject: [PATCH] services/repository/files/update.go aktualisiert --- services/repository/files/update.go | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/services/repository/files/update.go b/services/repository/files/update.go index 5017dc9e07..0f790148e0 100644 --- a/services/repository/files/update.go +++ b/services/repository/files/update.go @@ -88,8 +88,8 @@ func ChangeRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use defer closer.Close() // oldBranch must exist for this operation - if _, err := gitRepo.GetBranch(opts.OldBranch); - err != nil && !repo.IsEmpty { + branch, err := gitRepo.GetBranch(opts.OldBranch); + if err != nil && !repo.IsEmpty { return nil, err } @@ -100,11 +100,25 @@ func ChangeRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use return nil, errors.New("invalid operation: only delete is allowed for directory paths") } treePath := CleanUploadFileName(file.TreePath) - filelist, err := gitRepo.LsFilesFromDirectory(treePath, opts.OldBranch) + + branchCommit, err := branch.GetCommit() if err != nil { return nil, err } - for _, filename := range filelist { + + tree, err := branchCommit.SubTree(treePath) + if err != nil { + return nil, err + } + + allEntries, err := tree.ListEntriesRecursiveFast() + if err != nil { + return nil, err + } + + for _, entry := range allEntries { + filename := entry.Name() + if len(filename) > 0 { newOptsFiles = append(newOptsFiles, &ChangeRepoFile{ Operation: "delete",