Fix cloning single commits
This commit is contained in:
parent
c735940fc3
commit
0c09ade2d8
@ -8,6 +8,7 @@ import argparse
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import shutil
|
import shutil
|
||||||
|
import string
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tarfile
|
import tarfile
|
||||||
@ -94,12 +95,16 @@ clever_http_git_whitelist = [
|
|||||||
"http://bitbucket.com/", "https://bitbucket.com/"
|
"http://bitbucket.com/", "https://bitbucket.com/"
|
||||||
]
|
]
|
||||||
|
|
||||||
def git_clone_command(repo):
|
def git_clone_command(repo, ref):
|
||||||
# Http(s) transport may be dumb and not understand --depth.
|
# Http(s) transport may be dumb and not understand --depth.
|
||||||
if repo.startswith("http://") or repo.startswith("https://"):
|
if repo.startswith("http://") or repo.startswith("https://"):
|
||||||
if not any(map(repo.startswith, clever_http_git_whitelist)):
|
if not any(map(repo.startswith, clever_http_git_whitelist)):
|
||||||
return "git clone"
|
return "git clone"
|
||||||
|
|
||||||
|
# Have to clone whole repo to get a specific commit.
|
||||||
|
if all(c in string.hexdigits for c in ref):
|
||||||
|
return "git clone"
|
||||||
|
|
||||||
return "git clone --depth=1"
|
return "git clone --depth=1"
|
||||||
|
|
||||||
def cached_archive_name(name, version):
|
def cached_archive_name(name, version):
|
||||||
@ -154,7 +159,7 @@ def fetch(versions, version, temp_dir):
|
|||||||
|
|
||||||
result_dir = os.path.join(temp_dir, name)
|
result_dir = os.path.join(temp_dir, name)
|
||||||
print("Cloning {} from {} @{}".format(capitalize(name), repo, ref))
|
print("Cloning {} from {} @{}".format(capitalize(name), repo, ref))
|
||||||
run_command(git_clone_command(repo), quote(repo), quote(result_dir))
|
run_command(git_clone_command(repo, ref), quote(repo), quote(result_dir))
|
||||||
os.chdir(result_dir)
|
os.chdir(result_dir)
|
||||||
|
|
||||||
if ref != "master":
|
if ref != "master":
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user