Commit c65d55f
committed
Fix sync to always respect walkpath order.
Specifically, we could run into issues where a parent doesn't exist yet when copying files.
```
julia> index = Dict(Tuple(setdiff(p.segments, src.segments)) => p for p in walkpath(src))
Dict{Tuple{String,Vararg{String,N} where N},PosixPath} with 5 entries:
("folder1", "folder2") => /var/folders/h_/vkjv56410m7f75g9ffp46mf80000gp/T/tmpcJbzPa/folder1/folder2
("folder1",) => /var/folders/h_/vkjv56410m7f75g9ffp46mf80000gp/T/tmpcJbzPa/folder1
("folder1", "file2") => /var/folders/h_/vkjv56410m7f75g9ffp46mf80000gp/T/tmpcJbzPa/folder1/file2
("folder1", "folder2", "file3") => /var/folders/h_/vkjv56410m7f75g9ffp46mf80000gp/T/tmpcJbzPa/folder1/folder2/file3
("file1",) => /var/folders/h_/vkjv56410m7f75g9ffp46mf80000gp/T/tmpcJbzPa/file1
```
This would try and copy folder1/folder2 before creating folder1 because of how the segments were hashed.
An OrderedDict would also resolve this, but we don't want to depend on external dependencies in FilePathsBase.1 parent fb115af commit c65d55f
2 files changed
+36
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
522 | 522 | | |
523 | 523 | | |
524 | 524 | | |
525 | | - | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
526 | 529 | | |
527 | 530 | | |
528 | 531 | | |
529 | 532 | | |
530 | 533 | | |
531 | 534 | | |
532 | | - | |
533 | | - | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
534 | 538 | | |
535 | 539 | | |
536 | 540 | | |
| |||
540 | 544 | | |
541 | 545 | | |
542 | 546 | | |
543 | | - | |
544 | | - | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
545 | 553 | | |
546 | 554 | | |
547 | 555 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
640 | 640 | | |
641 | 641 | | |
642 | 642 | | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
643 | 666 | | |
644 | 667 | | |
645 | 668 | | |
| |||
0 commit comments