Skip to content

Conversation

@rofinn
Copy link
Owner

@rofinn rofinn commented Aug 23, 2019

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.

rofinn added 2 commits August 23, 2019 15:38
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.
- Check size and time
- Provide optional function that specify whether to sync (e.g., checksums)
Repository owner deleted a comment from codecov-io Aug 23, 2019
Repository owner deleted a comment from codecov-io Aug 23, 2019
@codecov-io
Copy link

codecov-io commented Aug 23, 2019

Codecov Report

Merging #46 into master will decrease coverage by 0.11%.
The diff coverage is 90.19%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   84.27%   84.15%   -0.12%     
==========================================
  Files          11       11              
  Lines         763      789      +26     
==========================================
+ Hits          643      664      +21     
- Misses        120      125       +5
Impacted Files Coverage Δ
src/test.jl 97.76% <100%> (+0.06%) ⬆️
src/path.jl 76.84% <83.87%> (+0.09%) ⬆️
src/system.jl 71.79% <0%> (-0.86%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update fb115af...3dd463f. Read the comment docs.

@rofinn rofinn merged commit a12c6e3 into master Aug 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants