Skip to content

feat(transfer): wire --debug=FUZZY producer emissions (3.4.1 parity)#4109

Merged
oferchen merged 2 commits into
masterfrom
feat/debug-fuzzy-emissions-2185
May 15, 2026
Merged

feat(transfer): wire --debug=FUZZY producer emissions (3.4.1 parity)#4109
oferchen merged 2 commits into
masterfrom
feat/debug-fuzzy-emissions-2185

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • Wires the previously inert --debug=FUZZY flag to actual producer emissions matching upstream rsync 3.4.1's generator.c byte-for-byte.
  • Emits the "fuzzy basis selected for <target>: <basis>" headline at FUZZY,1 inside the receiver basis search whenever FuzzyMatcher returns a candidate.
  • Emits a per-candidate "fuzzy distance for <name> = <score>.00000" line at FUZZY,2 inside the directory scan, plus an exported trace_fuzzy_size_mtime_match helper ready for the size+mtime fast path.

Test plan

  • Unit tests pin each FUZZY emission shape and verify the level-gating in crates/matching/src/fuzzy/trace.rs.
  • Receiver integration test fuzzy_basis_selection_emits_debug_fuzzy_line drives find_basis_file_with_config under FUZZY=1 and asserts the upstream-format selection line lands on the diagnostic bus.
  • CI: fmt+clippy, nextest (stable), Windows, macOS, Linux musl.

Closes #2185

Adds byte-for-byte FUZZY debug emissions matching upstream rsync's
generator.c:

- FUZZY,1 "fuzzy basis selected for <target>: <basis>" at the receiver
  basis search site whenever the fuzzy matcher returns a candidate.
- FUZZY,2 "fuzzy distance for <candidate> = <score>.<frac>" per scored
  candidate inside FuzzyMatcher::find_fuzzy_basis search loop.
- FUZZY,2 "fuzzy size/modtime match for <candidate>" helper exported for
  future wiring sites.

Includes per-emission shape tests and a receiver-side integration test
confirming the FUZZY,1 line fires through find_basis_file_with_config
under --debug=FUZZY.

Refs #2185.
@github-actions github-actions Bot added the enhancement New feature or request label May 15, 2026
@oferchen oferchen merged commit 930fbd2 into master May 15, 2026
39 checks passed
@oferchen oferchen deleted the feat/debug-fuzzy-emissions-2185 branch May 15, 2026 23:23
@oferchen oferchen mentioned this pull request May 16, 2026
oferchen added a commit that referenced this pull request May 18, 2026
…4109)

* feat(transfer): wire --debug=FUZZY producer emissions (3.4.1 parity)

Adds byte-for-byte FUZZY debug emissions matching upstream rsync's
generator.c:

- FUZZY,1 "fuzzy basis selected for <target>: <basis>" at the receiver
  basis search site whenever the fuzzy matcher returns a candidate.
- FUZZY,2 "fuzzy distance for <candidate> = <score>.<frac>" per scored
  candidate inside FuzzyMatcher::find_fuzzy_basis search loop.
- FUZZY,2 "fuzzy size/modtime match for <candidate>" helper exported for
  future wiring sites.

Includes per-emission shape tests and a receiver-side integration test
confirming the FUZZY,1 line fires through find_basis_file_with_config
under --debug=FUZZY.

Refs #2185.

* style: cargo fmt
oferchen added a commit that referenced this pull request May 18, 2026
…4109)

* feat(transfer): wire --debug=FUZZY producer emissions (3.4.1 parity)

Adds byte-for-byte FUZZY debug emissions matching upstream rsync's
generator.c:

- FUZZY,1 "fuzzy basis selected for <target>: <basis>" at the receiver
  basis search site whenever the fuzzy matcher returns a candidate.
- FUZZY,2 "fuzzy distance for <candidate> = <score>.<frac>" per scored
  candidate inside FuzzyMatcher::find_fuzzy_basis search loop.
- FUZZY,2 "fuzzy size/modtime match for <candidate>" helper exported for
  future wiring sites.

Includes per-emission shape tests and a receiver-side integration test
confirming the FUZZY,1 line fires through find_basis_file_with_config
under --debug=FUZZY.

Refs #2185.

* style: cargo fmt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant