Phase 4: --hard-links / -H (preserve inode relationships) #277

Closed
TapTap wants to merge 0 commits from feat/p4-hard-links into dev
Owner

Preserve hard links: source files sharing (st_dev,st_ino) are recreated as hard links on the destination; only the first member's data crosses the wire (siblings ride a payload-less STATUS_HARDLINK frame). Ordering requires the single-FIFO-writer receiver + forced sequential scan (documented). On link() failure falls back to a byte-identical local copy. Rejects -s and --append. PROTOCOL_VERSION 2.11.0 -> 2.12.0. Verified: STRICT_WARNINGS build clean, unit 28/28, 6 new integration tests (8 incl. --existing asymmetric), 298 full passed / 12 skipped / 1 xpassed. Independent c-review REQUEST CHANGES; fixes applied: deleted the dead HardLinkRegistry (ordering holds by FIFO writer), and --existing no longer aborts when the first member is absent but the sibling exists.

Preserve hard links: source files sharing (st_dev,st_ino) are recreated as hard links on the destination; only the first member's data crosses the wire (siblings ride a payload-less STATUS_HARDLINK frame). Ordering requires the single-FIFO-writer receiver + forced sequential scan (documented). On link() failure falls back to a byte-identical local copy. Rejects -s and --append. PROTOCOL_VERSION 2.11.0 -> 2.12.0. Verified: STRICT_WARNINGS build clean, unit 28/28, 6 new integration tests (8 incl. --existing asymmetric), 298 full passed / 12 skipped / 1 xpassed. Independent c-review REQUEST CHANGES; fixes applied: deleted the dead HardLinkRegistry (ordering holds by FIFO writer), and --existing no longer aborts when the first member is absent but the sibling exists.
Author
Owner

Merged locally into dev (cf7cc5b). Verified: unit 28/28, 8 hard-link integration tests, full suite + CI green (run 506). Independent c-review REQUEST CHANGES; fixes applied (dead registry removed, --existing asymmetric-group no longer aborts).

Merged locally into dev (cf7cc5b). Verified: unit 28/28, 8 hard-link integration tests, full suite + CI green (run 506). Independent c-review REQUEST CHANGES; fixes applied (dead registry removed, --existing asymmetric-group no longer aborts).
TapTap closed this pull request 2026-09-08 21:08:31 +02:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#277