threads / discuss / 48754

Git not creating new directory when cloning

Subject: Git not creating new directory when cloning

## tl;dr

2 messages between Jun 21, 2018 and Jun 21, 2018.

replies: 1people: 2as markdown or json

Jack Adrian Zappa· Jun 21, 2018, 16:04 UTC · lore

Hi, I was trying to clone a repo into a non-existent directory. but it gave me a failure:

$ git clone https://github.com/jelera/vim-javascript-syntax.git ~/.vim/bundle/vim-javascript-syntax fatal: destination path '/home/username/.vim/bundle/vim-javascript-syntax' already exists and is not an empty directory.

(the command was taken from install procedure from https://github.com/jelera/vim-javascript-syntax)

The directory "/home/username/.vim/bundle" already existed, but "'/home/username/.vim/bundle/vim-javascript-syntax" did not. Upon creating the "vim-javascript-syntax" sub-directory, the clone command succeeded. From what I read from the docs (https://git-scm.com/docs/git-clone):

Show 7 quoted lines
> git clone [--template=<template_directory>]
> [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
> [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>]
> [--dissociate] [--separate-git-dir <git dir>]
> [--depth <depth>] [--[no-]single-branch] [--no-tags]
> [--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
>  [--jobs <n>] [--] <repository> [<directory>]
...
> <directory>
>
> The name of a new directory to clone into. The "humanish" part of the source repository is used if no directory is explicitly given (repo for /path/to/repo.git and foo for host.xz:foo/.git). Cloning into an existing directory is only allowed if the directory is empty.

Which to me, implies that the directory doesn't have to exist prior to cloning. So is this a bug or a misunderstanding?

Thanks,
A
Jeff King· Jun 21, 2018, 17:45 UTC · re: Jack Adrian Zappa · lore

Re: Git not creating new directory when cloning

On Thu, Jun 21, 2018 at 12:04:11PM -0400, Jack Adrian Zappa wrote:
Show 8 quoted lines
> Hi, I was trying to clone a repo into a non-existent directory. but it
> gave me a failure:
> 
> $  git clone  https://github.com/jelera/vim-javascript-syntax.git
> ~/.vim/bundle/vim-javascript-syntax
> fatal: destination path
> '/home/username/.vim/bundle/vim-javascript-syntax' already exists and
> is not an empty directory.

That exact command works just fine for me. Are you absolutely sure that the directory did not exist?

Which version of Git are you using?
Show 8 quoted lines
> > The name of a new directory to clone into. The "humanish" part of
> > the source repository is used if no directory is explicitly given
> > (repo for /path/to/repo.git and foo for host.xz:foo/.git). Cloning
> > into an existing directory is only allowed if the directory is
> > empty.
> 
> Which to me, implies that the directory doesn't have to exist prior to
> cloning.  So is this a bug or a misunderstanding?
Correct, in general it should _not_ exist.
-Peff

← back to recent threads