aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiteabot <teabot@gitea.io>2023-11-14 09:56:21 +0800
committerGitHub <noreply@github.com>2023-11-14 09:56:21 +0800
commit00cd5ba6f4eb444085649aae6167bed32463e76b (patch)
treeb483478febf4cffb79eca35baa627900b477e2d0
parenteef41489357a6b57e81f7c9a0a5580553f0f66ef (diff)
downloadgitea-00cd5ba6f4eb444085649aae6167bed32463e76b.tar.gz
gitea-00cd5ba6f4eb444085649aae6167bed32463e76b.zip
fixed duplicate attachments on dump on windows (#28019) (#28031)
Backport #28019 by @anudeepreddy Hi, This PR fixes #27988. The use of `path.join`(which uses `/` as the file separator) to construct paths and comparing them with paths constructed using `filepath.join`(which uses platform specific file separator) is the root cause of this issue. The desired behavior is to ignore attachments when dumping data directory. Due to the what's mentioned above, the function `addRecursiveExclude` is not actually ignoring the attachments directory and is being written to the archive. The attachment directory is again added to the archive (with different file separator as mentioned in the issue) causing a duplicate entry on windows. The solution is to use `filepath.join` in `addResursiveExclude` to construct `currentAbsPath`. Co-authored-by: Anudeep Reddy <anudeepc85@gmail.com>
-rw-r--r--cmd/dump.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/cmd/dump.go b/cmd/dump.go
index 97f292ae09..69ecdcec12 100644
--- a/cmd/dump.go
+++ b/cmd/dump.go
@@ -452,7 +452,7 @@ func addRecursiveExclude(w archiver.Writer, insidePath, absPath string, excludeA
return err
}
for _, file := range files {
- currentAbsPath := path.Join(absPath, file.Name())
+ currentAbsPath := filepath.Join(absPath, file.Name())
currentInsidePath := path.Join(insidePath, file.Name())
if file.IsDir() {
if !util.SliceContainsString(excludeAbsPath, currentAbsPath) {