summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/fetch2/git.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/bitbake/lib/bb/fetch2/git.py b/bitbake/lib/bb/fetch2/git.py
index 08daa20313..0a1818f825 100644
--- a/bitbake/lib/bb/fetch2/git.py
+++ b/bitbake/lib/bb/fetch2/git.py
@@ -194,6 +194,31 @@ class Git(Fetch):
194 os.chdir(ud.clonedir) 194 os.chdir(ud.clonedir)
195 bb.utils.prunedir(codir) 195 bb.utils.prunedir(codir)
196 196
197 def unpack(self, ud, destdir, d):
198 """ unpack the downloaded src to destdir"""
199
200 subdir = ud.parm.get("subpath", "")
201 if subdir != "":
202 readpathspec = ":%s" % (subdir)
203 else:
204 readpathspec = ""
205
206 destdir = os.path.join(destdir, "git/")
207 if os.path.exists(destdir):
208 bb.utils.prunedir(destdir)
209
210 if 'fullclone' in ud.parm:
211 runfetchcmd("git clone -s -n %s %s" % (ud.clonedir, destdir), d)
212 if os.path.exists("%s/.git/refs/remotes/origin" % ud.clonedir):
213 runfetchcmd("cp -af %s/.git/refs/remotes/origin/* %s/.git/refs/remotes/origin/" %(ud.clonedir, destdir), d)
214 if os.path.exists("%s/.git/packed-refs" % ud.clonedir):
215 runfetchcmd("cp -af %s/.git/packed-refs %s/.git/" %(ud.clonedir, destdir), d)
216 else:
217 os.chdir(ud.clonedir)
218 runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.tag, readpathspec), d)
219 runfetchcmd("%s checkout-index -q -f --prefix=%s -a" % (ud.basecmd, destdir), d)
220 return True
221
197 def supports_srcrev(self): 222 def supports_srcrev(self):
198 return True 223 return True
199 224