diff options
Diffstat (limited to 'bitbake/lib/bb/fetch/git.py')
-rw-r--r-- | bitbake/lib/bb/fetch/git.py | 16 |
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) |