ref: d86d30116b7509e616d4dfedc8b9aca2db5ae3e8
parent: 8aa2e9f0903a80c90a9d8308138439d6f8732050
author: Runxi Yu <me@runxiyu.org>
date: Sat Mar 7 16:01:13 EST 2026
receivepack: Propagate the rename error properly
--- a/receivepack/internal/service/quarantine.go
+++ b/receivepack/internal/service/quarantine.go
@@ -141,14 +141,23 @@
if statErr == nil {err = fs.ErrExist
} else if errors.Is(statErr, fs.ErrNotExist) {- if renameErr := root.Rename(src, dst); renameErr == nil {+ renameErr := root.Rename(src, dst)
+ if renameErr == nil {return nil
}
- return fmt.Errorf("promote quarantine %q -> %q: %w", src, dst, err)+ err = renameErr
} else {+ _ = root.Remove(src)
+
return statErr
}
+ }
+
+ if !errors.Is(err, fs.ErrExist) {+ _ = root.Remove(src)
+
+ return fmt.Errorf("promote quarantine %q -> %q: %w", src, dst, err)}
if skipCollisionCheck {--
⑨