From f4dcb33cccde7857956db3c255c3812d7c31c974 Mon Sep 17 00:00:00 2001 From: Gert Goet Date: Sun, 13 Jan 2013 13:07:22 +0100 Subject: [PATCH] Prevent permission denied when cloning Without read permission to the current working directory, git-clone will fail: root@host:~$ sudo -u git -H git clone \ git://github.com/ansible/ansible.git /home/git/ansible fatal: Could not change back to '/root': Permission denied This commit ensures that the working directory is changed to the parent-folder of the destination before doing the clone. --- library/git | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/git b/library/git index e637530cf3..d1d78401fc 100644 --- a/library/git +++ b/library/git @@ -80,10 +80,12 @@ def get_version(dest): def clone(repo, dest, remote): ''' makes a new git repo if it does not already exist ''' + dest_dirname = os.path.dirname(dest) try: - os.makedirs(os.path.dirname(dest)) + os.makedirs(dest_dirname) except: pass + os.chdir(dest_dirname) return _run("git clone -o %s %s %s" % (remote, repo, dest)) def has_local_mods(dest):