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.
reviewable/pr18780/r1
Gert Goet 12 years ago
parent 3a003c2430
commit 2db7cc3314

4
git

@ -80,10 +80,12 @@ def get_version(dest):
def clone(repo, dest, remote): def clone(repo, dest, remote):
''' makes a new git repo if it does not already exist ''' ''' makes a new git repo if it does not already exist '''
dest_dirname = os.path.dirname(dest)
try: try:
os.makedirs(os.path.dirname(dest)) os.makedirs(dest_dirname)
except: except:
pass pass
os.chdir(dest_dirname)
return _run("git clone -o %s %s %s" % (remote, repo, dest)) return _run("git clone -o %s %s %s" % (remote, repo, dest))
def has_local_mods(dest): def has_local_mods(dest):

Loading…
Cancel
Save