From 0e77393400b9e44dae87a68ef124e89add0bccc2 Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Sat, 23 May 2026 02:48:36 +0100 Subject: [PATCH] feat(merge): three-way merge via git merge-file with conflict detection --- internal/merge/merge.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/merge/merge.go b/internal/merge/merge.go index 07ac088..587cd99 100644 --- a/internal/merge/merge.go +++ b/internal/merge/merge.go @@ -8,7 +8,7 @@ import ( "path/filepath" ) -// Inputs: +// Inputs holds the three versions required for a three-way merge. // // Base = last-rendered snapshot (state/...) // Ours = new rendered output (what we'd write now) @@ -31,19 +31,19 @@ func ThreeWay(in Inputs) (*Result, error) { if err != nil { return nil, err } - defer os.RemoveAll(tmp) + defer func() { _ = os.RemoveAll(tmp) }() oursPath := filepath.Join(tmp, "ours") basePath := filepath.Join(tmp, "base") theirsPath := filepath.Join(tmp, "theirs") - if err := os.WriteFile(oursPath, in.Ours, 0o644); err != nil { + if err := os.WriteFile(oursPath, in.Ours, 0o600); err != nil { return nil, err } - if err := os.WriteFile(basePath, in.Base, 0o644); err != nil { + if err := os.WriteFile(basePath, in.Base, 0o600); err != nil { return nil, err } - if err := os.WriteFile(theirsPath, in.Theirs, 0o644); err != nil { + if err := os.WriteFile(theirsPath, in.Theirs, 0o600); err != nil { return nil, err }