]> git.ipfire.org Git - thirdparty/git.git/commit - builtin/clone.c
git clone: don't clone into non-empty directory
authorBen Wijen <ben@wijen.net>
Fri, 10 Jul 2020 08:47:32 +0000 (10:47 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 10 Jul 2020 18:43:29 +0000 (11:43 -0700)
commitdfaa209a79a831e8ff4f6b8e14a8b0c35b4f6b6e
treef20e0b5a062deec373346cb6782f6757eac132e1
parenta08a83db2bf27f015bec9a435f6d73e223c21c5e
git clone: don't clone into non-empty directory

When using git clone with --separate-git-dir realgitdir and
realgitdir already exists, it's content is destroyed.

So, make sure we don't clone into an existing non-empty directory.

When d45420c1 (clone: do not clean up directories we didn't create,
2018-01-02) tightened the clean-up procedure after a failed cloning
into an empty directory, it assumed that the existing directory
given is an empty one so it is OK to keep that directory, while
running the clean-up procedure that is designed to remove everything
in it (since there won't be any, anyway).  Check and make sure that
the $GIT_DIR is empty even cloning into an existing repository.

Signed-off-by: Ben Wijen <ben@wijen.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/clone.c
t/t5601-clone.sh