From patchwork Thu Jun 14 13:33:17 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel, 4/4] fetch2/git.py: Optimize clone fall back when it is local Date: Thu, 14 Jun 2012 13:33:17 -0000 From: Jason Wessel X-Patchwork-Id: 29837 Message-Id: <4FD9E81D.6030808@windriver.com> To: Richard Purdie Cc: bitbake-devel@lists.openembedded.org On 06/14/2012 08:03 AM, Richard Purdie wrote: > On Wed, 2012-06-13 at 22:09 -0500, Jason Wessel wrote: >> A file:// url should use "clone -s" to greatly speed >> up the clone in the case of a kernel when it is local. >> >> Signed-off-by: Jason Wessel >> --- >> lib/bb/fetch2/git.py | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py >> index 1ad9213..f5a3983 100644 >> --- a/lib/bb/fetch2/git.py >> +++ b/lib/bb/fetch2/git.py >> @@ -192,7 +192,13 @@ class Git(FetchMethod): >> >> # If the repo still doesn't exist, fallback to cloning it >> if not os.path.exists(ud.clonedir): >> - clone_cmd = "%s clone --bare --mirror %s %s" % (ud.basecmd, repourl, ud.clonedir) >> + if repourl.startswith("file://"): >> + use_s = "-s" >> + repo = repourl[7:] >> + else: >> + use_s = "" >> + repo = repourl >> + clone_cmd = "%s clone %s --bare --mirror %s %s" % (ud.basecmd, use_s, repo, ud.clonedir) >> if ud.proto.lower() != 'file': >> bb.fetch2.check_network_access(d, clone_cmd) >> runfetchcmd(clone_cmd, d) > > How about always using the -l option instead? > I just had to put it through some testing first. Yes I agree it is fine to use -l as well. Attached is the new version of the patch. Jason. >From daa5cc78b294406fd2376697d44c4de1a42d6f34 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Tue, 12 Jun 2012 13:23:34 -0500 Subject: [PATCH] fetch2/git.py: Optimize clone fall back when it is local A file:// url should use "clone -l" to greatly speed up the clone in the case of a kernel when it is local. Signed-off-by: Jason Wessel --- lib/bb/fetch2/git.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py index ecc5e0d..d6a08ac 100644 --- a/lib/bb/fetch2/git.py +++ b/lib/bb/fetch2/git.py @@ -188,7 +188,13 @@ class Git(FetchMethod): # If the repo still doesn't exist, fallback to cloning it if not os.path.exists(ud.clonedir): - clone_cmd = "%s clone --bare --mirror %s %s" % (ud.basecmd, repourl, ud.clonedir) + if repourl.startswith("file://"): + use_s = "-l" + repo = repourl[7:] + else: + use_s = "" + repo = repourl + clone_cmd = "%s clone %s --bare --mirror %s %s" % (ud.basecmd, use_s, repo, ud.clonedir) if ud.proto.lower() != 'file': bb.fetch2.check_network_access(d, clone_cmd) runfetchcmd(clone_cmd, d) -- 1.7.10