summaryrefslogtreecommitdiffstats
path: root/lib/bb/fetch2
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-06 10:20:18 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-10 23:36:55 +0000
commit901cd79ef948c4ff9694634f553db26ca62a8ee5 (patch)
treee267080ad81ae185f193dcbbf8b0602548b3f3a6 /lib/bb/fetch2
parent6130729c49cc7500102ec22817e039bc982234bc (diff)
downloadbitbake-901cd79ef948c4ff9694634f553db26ca62a8ee5.tar.gz
bitbake/fetch2/git: Switch to completely use bare clones
We no longer need index/workdir support in the mirror tree and it causes all kind of reference naming problems.Simplifying the code to remove this and use just bare clones addresses this problem. We increase the "version" number on the mirror tarballs to reflect the change and ensure older mirror tarballs are not used as they would break. (From Poky rev: e4c1e99f234491af1c0fc886e73deedaef108a1a) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/fetch2')
-rw-r--r--lib/bb/fetch2/git.py13
1 files changed, 4 insertions, 9 deletions
diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index ba8126f00..a4a1278b6 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -66,7 +66,7 @@ class Git(Fetch):
ud.branches[name] = branch
gitsrcname = '%s%s' % (ud.host, ud.path.replace('/', '.'))
- ud.mirrortarball = 'git_%s.tar.gz' % (gitsrcname)
+ ud.mirrortarball = 'git2_%s.tar.gz' % (gitsrcname)
ud.clonedir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
@@ -116,8 +116,8 @@ class Git(Fetch):
# If the repo still doesn't exist, fallback to cloning it
if not os.path.exists(ud.clonedir):
- bb.fetch2.check_network_access(d, "git clone %s%s" % (ud.host, ud.path))
- runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
+ bb.fetch2.check_network_access(d, "git clone --bare %s%s" % (ud.host, ud.path))
+ runfetchcmd("%s clone --bare %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d)
os.chdir(ud.clonedir)
# Update the checkout if needed
@@ -147,7 +147,7 @@ class Git(Fetch):
mirror_tarballs = data.getVar("BB_GENERATE_MIRROR_TARBALLS", d, True)
if mirror_tarballs != "0" and ud.repochanged:
logger.info("Creating tarball of git repository")
- runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".", ".git", "*") ), d)
+ runfetchcmd("tar -czf %s %s" % (repofile, os.path.join(".") ), d)
def unpack(self, ud, destdir, d):
""" unpack the downloaded src to destdir"""
@@ -163,11 +163,6 @@ class Git(Fetch):
bb.utils.prunedir(destdir)
runfetchcmd("git clone -s -n %s %s" % (ud.clonedir, destdir), d)
- if os.path.exists("%s/.git/refs/remotes/origin" % ud.clonedir):
- bb.mkdirhier("%s/.git/refs/remotes/origin/" % destdir)
- runfetchcmd("cp -af %s/.git/refs/remotes/origin/* %s/.git/refs/remotes/origin/" %(ud.clonedir, destdir), d)
- if os.path.exists("%s/.git/packed-refs" % ud.clonedir):
- runfetchcmd("cp -af %s/.git/packed-refs %s/.git/" %(ud.clonedir, destdir), d)
if not ud.nocheckout:
os.chdir(destdir)
runfetchcmd("%s read-tree %s%s" % (ud.basecmd, ud.revisions[ud.names[0]], readpathspec), d)