From abe46880594552c3bf9ffecd6aad731540f6d4ed Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 5 May 2026 01:00:13 +0100 Subject: [PATCH] fix: suppress macOS xattrs in archive sync --- CHANGELOG.md | 1 + internal/cli/sync_windows_target.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d2ab2d9..697c16e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Fixed AWS Windows WSL2 mode overrides so they refresh the default instance type to a nested-virtualization-capable family. Thanks @steipete. - Fixed AWS Windows WSL2 runs so mode overrides also refresh the default work root to `/work/crabbox` and sync via a WSL archive stream instead of rsync's remote protocol through Windows OpenSSH. - Fixed remote git seeding so an unfetchable local commit cannot leave an empty `.git` worktree that makes sync sanity report every tracked file as deleted. +- Fixed Windows archive sync from macOS so Apple extended attributes do not spam remote tar warnings. ## 0.5.0 - 2026-05-04 diff --git a/internal/cli/sync_windows_target.go b/internal/cli/sync_windows_target.go index 253a84d..cd11008 100644 --- a/internal/cli/sync_windows_target.go +++ b/internal/cli/sync_windows_target.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "fmt" + "os" "os/exec" "time" ) @@ -21,6 +22,7 @@ func syncWindowsNative(ctx context.Context, target SSHTarget, repo Repo, cfg Con input.Write(manifest.NUL()) cmd := exec.CommandContext(ctx, "tar", "-czf", "-", "-C", repo.Root, "--null", "-T", "-") cmd.Stdin = &input + cmd.Env = append(os.Environ(), "COPYFILE_DISABLE=1") var archive bytes.Buffer cmd.Stdout = &archive cmd.Stderr = stderr @@ -71,6 +73,7 @@ func syncArchive(ctx context.Context, target SSHTarget, repo Repo, workdir strin input.Write(manifest.NUL()) cmd := exec.CommandContext(ctx, "tar", "-czf", "-", "-C", repo.Root, "--null", "-T", "-") cmd.Stdin = &input + cmd.Env = append(os.Environ(), "COPYFILE_DISABLE=1") var archive bytes.Buffer cmd.Stdout = &archive cmd.Stderr = stderr