Hi,
I reported this on github but I was asked to take it here [*]. I had to
deal with the following scenario today (on Windows, but not OS-specific):
$ git clone --single-branch --branch feature/bla --depth 200
~/source/Repos/bla ${PATH_ON_DOFFERENT_DRIVE}/bla
Cloning into './bla'...
warning: --depth is ignored in local clones; use file:// instead.
... run out of disk space because it does a full clone ...
Doing something different than the user asked for, and in a way that can
lead to dangerous scenarios, is a bad choice. In this case I was
copying to a USB stick, but it could also be a system drive that runs
out of space.
Additionally, the suggestion to use "file://" instead turned out to be
impractical, as it is very slow. I started the operation with
"file://..." replacing the repository path on the command line before my
lunch break. When I came back it had copied a mere 100MB.
I would suggest to not imply "--local" when copying to a different
device, and I would suggest to avoid doing something different than what
the user asked for. In this case I specifically asked for a shallow
copy to save resources, the logic that a local copy using hard links
actually saves more resources simply didn't apply. Additionally, I
would suggest investigating potential performance issues in the case of
a shallow clone with file:// paths.
Please consider changing these choices and defaults.
Best regards,
- Tobi
[*] https://github.com/git-for-windows/git/issues/4693