From 5c229f921fbd6f1ffae4038c05bf32f9b4051684 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Fri, 27 Aug 2010 14:06:18 +0100 Subject: bitbake/git: define a forcefetch method The git fetcher should force a fetch if the required tag is not present in the local clone, or if the fullclone parameter is set. Signed-off-by: Joshua Lock --- bitbake/lib/bb/fetch/git.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'bitbake/lib/bb/fetch/git.py') diff --git a/bitbake/lib/bb/fetch/git.py b/bitbake/lib/bb/fetch/git.py index 9cd538854f..b6126cbe91 100644 --- a/bitbake/lib/bb/fetch/git.py +++ b/bitbake/lib/bb/fetch/git.py @@ -85,6 +85,11 @@ class Git(Fetch): return os.path.join(data.getVar("DL_DIR", d, True), ud.localfile) + def forcefetch(self, url, ud, d): + if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm: + return True + return False + def go(self, loc, ud, d): """Fetch url""" @@ -108,8 +113,8 @@ class Git(Fetch): runfetchcmd("%s clone -n %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.clonedir), d) os.chdir(ud.clonedir) - # Remove all but the .git directory if not self._contains_ref(ud.tag, d) or 'fullclone' in ud.parm: + # Remove all but the .git directory runfetchcmd("rm * -Rf", d) runfetchcmd("%s fetch %s://%s%s%s %s" % (ud.basecmd, ud.proto, username, ud.host, ud.path, ud.branch), d) runfetchcmd("%s fetch --tags %s://%s%s%s" % (ud.basecmd, ud.proto, username, ud.host, ud.path), d) -- cgit v1.2.3