summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/fetch/git.py
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/bb/fetch/git.py')
-rw-r--r--bitbake/lib/bb/fetch/git.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py
index a2fbd78cbf..de415ec309 100644
--- a/bitbake/lib/bb/fetch/git.py
+++ b/bitbake/lib/bb/fetch/git.py
@@ -180,14 +180,20 @@ class Git(Fetch):
180 readpathspec = "" 180 readpathspec = ""
181 coprefix = os.path.join(codir, "git", "") 181 coprefix = os.path.join(codir, "git", "")
182 182
183 bb.mkdirhier(codir) 183 scmdata = ud.parm.get("scmdata", "")
184 os.chdir(ud.clonedir) 184 if scmdata == "keep":
185 runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d) 185 runfetchcmd("%s clone -n %s %s" % (ud.basecmd, ud.clonedir, coprefix), d)
186 runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d) 186 os.chdir(coprefix)
187 runfetchcmd("%s checkout -q -f %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
188 else:
189 bb.mkdirhier(codir)
190 os.chdir(ud.clonedir)
191 runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
192 runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, coprefix), d)
187 193
188 os.chdir(codir) 194 os.chdir(codir)
189 logger.info("Creating tarball of git checkout") 195 logger.info("Creating tarball of git checkout")
190 runfetchcmd("tar --exclude '.git' -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d) 196 runfetchcmd("tar -czf %s %s" % (ud.localpath, os.path.join(".", "*") ), d)
191 197
192 os.chdir(ud.clonedir) 198 os.chdir(ud.clonedir)
193 bb.utils.prunedir(codir) 199 bb.utils.prunedir(codir)