Currently most CI/CD tools support sparse checkouts from VCS's like GitHub and in some case, default to it. As CircleCI does not currently support this, it means that custom checkout steps must be written and maintained in order to carry out "non default behaviour", especially on Windows.