I had another look at this. I’m still a bit confused about what is considered duplicates and what is not. For example
copy {
from [f, f]
duplicatesStrategy = DuplicatesStrategy.FAIL
into target
}
reports a duplicate path whereas
copy {
from f
from f
duplicatesStrategy = DuplicatesStrategy.FAIL
into target
}
does not.