Commit 8d9862b
committed
fix(backup): restore file and symlink source paths via unified root policy
Regression from 0b10124: the unified inode walker unconditionally called
`read_dir` on the source root, so a regular-file `source_paths` entry
surfaced as `Not a directory (os error 20)`. Concentrate the file-vs-
directory-vs-symlink decision in a new `ResolvedSource` + `RootEmission`
policy resolved once up front, and drive the walker, materializer, and
parent-reuse inversion from that single policy. The walker now re-stats
the root at init, so `EmitRoot` entries carry real filesystem metadata
instead of the previous synthetic `0o755/0/0/0` placeholder.1 parent f5f0676 commit 8d9862b
9 files changed
Lines changed: 1161 additions & 290 deletions
File tree
- crates/vykar-core
- src
- commands/backup
- walk
- repo
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| |||
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | | - | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | 56 | | |
83 | 57 | | |
84 | 58 | | |
| |||
276 | 250 | | |
277 | 251 | | |
278 | 252 | | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
304 | 258 | | |
305 | 259 | | |
306 | 260 | | |
| |||
420 | 374 | | |
421 | 375 | | |
422 | 376 | | |
423 | | - | |
424 | | - | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
425 | 381 | | |
426 | 382 | | |
427 | 383 | | |
| |||
449 | 405 | | |
450 | 406 | | |
451 | 407 | | |
452 | | - | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
453 | 413 | | |
454 | 414 | | |
455 | 415 | | |
| |||
536 | 496 | | |
537 | 497 | | |
538 | 498 | | |
539 | | - | |
540 | | - | |
| 499 | + | |
541 | 500 | | |
542 | 501 | | |
543 | 502 | | |
| |||
574 | 533 | | |
575 | 534 | | |
576 | 535 | | |
577 | | - | |
| 536 | + | |
578 | 537 | | |
579 | 538 | | |
580 | 539 | | |
581 | 540 | | |
582 | | - | |
583 | | - | |
| 541 | + | |
584 | 542 | | |
585 | 543 | | |
586 | 544 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
654 | 655 | | |
655 | 656 | | |
656 | 657 | | |
657 | | - | |
658 | | - | |
| 658 | + | |
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
| |||
699 | 699 | | |
700 | 700 | | |
701 | 701 | | |
702 | | - | |
703 | | - | |
| 702 | + | |
704 | 703 | | |
705 | 704 | | |
706 | 705 | | |
| |||
753 | 752 | | |
754 | 753 | | |
755 | 754 | | |
756 | | - | |
757 | | - | |
| 755 | + | |
758 | 756 | | |
759 | 757 | | |
760 | 758 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
410 | 411 | | |
411 | 412 | | |
412 | 413 | | |
413 | | - | |
414 | | - | |
| 414 | + | |
415 | 415 | | |
416 | 416 | | |
417 | 417 | | |
| |||
436 | 436 | | |
437 | 437 | | |
438 | 438 | | |
439 | | - | |
| 439 | + | |
440 | 440 | | |
441 | 441 | | |
442 | 442 | | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | 443 | | |
462 | 444 | | |
463 | 445 | | |
| |||
469 | 451 | | |
470 | 452 | | |
471 | 453 | | |
472 | | - | |
473 | 454 | | |
474 | 455 | | |
475 | 456 | | |
| |||
484 | 465 | | |
485 | 466 | | |
486 | 467 | | |
487 | | - | |
| 468 | + | |
488 | 469 | | |
489 | 470 | | |
490 | 471 | | |
| |||
688 | 669 | | |
689 | 670 | | |
690 | 671 | | |
691 | | - | |
| 672 | + | |
692 | 673 | | |
693 | 674 | | |
694 | 675 | | |
| |||
0 commit comments