summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch2/git.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/fetch2/git.py')
-rw-r--r--bitbake/lib/bb/fetch2/git.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index fb0260a42a..4e46ec8f30 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -38,6 +38,12 @@ Supported SRC_URI options are:
38 who has its own routine to checkout code. 38 who has its own routine to checkout code.
39 The default is "0", set nocheckout=1 if needed. 39 The default is "0", set nocheckout=1 if needed.
40 40
41- bareclone
42 Create a bare clone of the source code and don't checkout the source code
43 when unpacking. Set this option for the recipe who has its own routine to
44 checkout code and tracking branch requirements.
45 The default is "0", set bareclone=1 if needed.
46
41""" 47"""
42 48
43#Copyright (C) 2005 Richard Purdie 49#Copyright (C) 2005 Richard Purdie
@@ -95,6 +101,11 @@ class Git(FetchMethod):
95 101
96 ud.rebaseable = ud.parm.get("rebaseable","0") == "1" 102 ud.rebaseable = ud.parm.get("rebaseable","0") == "1"
97 103
104 # bareclone implies nocheckout
105 ud.bareclone = ud.parm.get("bareclone","0") == "1"
106 if ud.bareclone:
107 ud.nocheckout = 1
108
98 branches = ud.parm.get("branch", "master").split(',') 109 branches = ud.parm.get("branch", "master").split(',')
99 if len(branches) != len(ud.names): 110 if len(branches) != len(ud.names):
100 raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url) 111 raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
@@ -220,7 +231,11 @@ class Git(FetchMethod):
220 if os.path.exists(destdir): 231 if os.path.exists(destdir):
221 bb.utils.prunedir(destdir) 232 bb.utils.prunedir(destdir)
222 233
223 runfetchcmd("git clone -s -n %s/ %s" % (ud.clonedir, destdir), d) 234 cloneflags = "-s -n"
235 if ud.bareclone:
236 cloneflags += " --mirror"
237
238 runfetchcmd("git clone %s %s/ %s" % (cloneflags, ud.clonedir, destdir), d)
224 if not ud.nocheckout: 239 if not ud.nocheckout:
225 os.chdir(destdir) 240 os.chdir(destdir)
226 if subdir != "": 241 if subdir != "":