Skip to content

Refine copy skip detection and modularize directory executor#2074

Merged
oferchen merged 1 commit into
masterfrom
fix-test-failures-in-local_copy-module
Nov 8, 2025
Merged

Refine copy skip detection and modularize directory executor#2074
oferchen merged 1 commit into
masterfrom
fix-test-failures-in-local_copy-module

Conversation

@oferchen
Copy link
Copy Markdown
Owner

@oferchen oferchen commented Nov 8, 2025

Summary

  • ensure the copy skipper verifies file contents when timestamps match by falling back to a checksum comparison
  • update the associated regression test to require rewrites when metadata matches but data differs
  • split the directory executor into dedicated planner, recursion, and support modules to keep files under the size limit and clarify responsibilities

Testing

  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test -p oc-rsync-engine

Codex Task

@oferchen oferchen merged commit cff9b74 into master Nov 8, 2025
@oferchen oferchen deleted the fix-test-failures-in-local_copy-module branch November 8, 2025 16:01
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +204 to 208
let plan = plan_directory_entries(context, &entries, relative, root_device)?;
apply_pre_transfer_deletions(context, destination, relative, &plan)?;

for planned in planned_entries {
for planned in plan.planned_entries {
let file_name = &planned.entry.file_name;
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0 Badge Borrow planned_entries before iterating

The for planned in plan.planned_entries loop moves the planned_entries vector out of plan. After that move the code still reads plan.deletion_enabled and plan.keep_names later in the function, which causes a compile error because plan has been partially moved. Iterate over &plan.planned_entries or destructure the fields into locals before the loop so the struct remains usable afterward.

Useful? React with 👍 / 👎.

oferchen added a commit that referenced this pull request May 16, 2026
Captures evidence that the cumulative zsync-inspired matching work
(#2059-#2087) plus its three recent follow-up PRs (#4164 adversarial
fixtures, #4166 arena allocator feasibility audit, #4169 zsync cleanup
audit) has not regressed upstream rsync interoperability.

Anchored on master commit 6a615aa where both the CI and Interop
Validation workflows are green. Records the per-version matrix
(3.0.9 / 3.1.3 / 3.4.1 / 3.4.2 native, plus protocols 28-32 against
3.4.2), the 71-scenario standalone list with the single pre-existing
known failure, and the delta-stats parity proof (oc-rsync and upstream
both report matched=91900) that the matching pipeline remains
wire-equivalent.
oferchen added a commit that referenced this pull request May 16, 2026
…4171)

Captures evidence that the cumulative zsync-inspired matching work
(#2059-#2087) plus its three recent follow-up PRs (#4164 adversarial
fixtures, #4166 arena allocator feasibility audit, #4169 zsync cleanup
audit) has not regressed upstream rsync interoperability.

Anchored on master commit 6a615aa where both the CI and Interop
Validation workflows are green. Records the per-version matrix
(3.0.9 / 3.1.3 / 3.4.1 / 3.4.2 native, plus protocols 28-32 against
3.4.2), the 71-scenario standalone list with the single pre-existing
known failure, and the delta-stats parity proof (oc-rsync and upstream
both report matched=91900) that the matching pipeline remains
wire-equivalent.
oferchen added a commit that referenced this pull request May 18, 2026
…4171)

Captures evidence that the cumulative zsync-inspired matching work
(#2059-#2087) plus its three recent follow-up PRs (#4164 adversarial
fixtures, #4166 arena allocator feasibility audit, #4169 zsync cleanup
audit) has not regressed upstream rsync interoperability.

Anchored on master commit bfb940e where both the CI and Interop
Validation workflows are green. Records the per-version matrix
(3.0.9 / 3.1.3 / 3.4.1 / 3.4.2 native, plus protocols 28-32 against
3.4.2), the 71-scenario standalone list with the single pre-existing
known failure, and the delta-stats parity proof (oc-rsync and upstream
both report matched=91900) that the matching pipeline remains
wire-equivalent.
oferchen added a commit that referenced this pull request May 18, 2026
…4171)

Captures evidence that the cumulative zsync-inspired matching work
(#2059-#2087) plus its three recent follow-up PRs (#4164 adversarial
fixtures, #4166 arena allocator feasibility audit, #4169 zsync cleanup
audit) has not regressed upstream rsync interoperability.

Anchored on master commit 7329d95 where both the CI and Interop
Validation workflows are green. Records the per-version matrix
(3.0.9 / 3.1.3 / 3.4.1 / 3.4.2 native, plus protocols 28-32 against
3.4.2), the 71-scenario standalone list with the single pre-existing
known failure, and the delta-stats parity proof (oc-rsync and upstream
both report matched=91900) that the matching pipeline remains
wire-equivalent.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant