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