On 8 October 2015 at 12:08, Michael Wood <[email protected]> wrote:
> As toaster makes use of clones of itself we have a mechanism to just > clone the current checkout and use that as a basis for the git clone for > the layers inside. For instance in poky if we're running in that directory > we don't ever want to change the current checkout so we make a copy of > ourselves to do this work in. This step is cached_layers and previously > traversed through directories inside the current checkout to find any > pre-existing checkouts. This was ending up traversing too many > directories down so remove the traverse and only deal with the current > directory. > Submitted upstream, added to toaster-next. Elliot > > [YOCTO #8463] > > Signed-off-by: Michael Wood <[email protected]> > --- > .../toaster/bldcontrol/localhostbecontroller.py | 29 > ++++++++++++---------- > 1 file changed, 16 insertions(+), 13 deletions(-) > > diff --git a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py > b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py > index 3ee68ae..b5cf559 100644 > --- a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py > +++ b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py > @@ -218,23 +218,26 @@ class > LocalhostBEController(BuildEnvironmentController): > logger.debug("localhostbecontroller, our git repos are %s" % > pformat(gitrepos)) > > > - # 2. find checked-out git repos in the sourcedir directory that > may help faster cloning > + # 2. Note for future use if the current source directory is a > + # checked-out git repos that could match a layer's vcs_url and > therefore > + # be used to speed up cloning (rather than fetching it again). > > cached_layers = {} > - for ldir in os.listdir(self.be.sourcedir): > - fldir = os.path.join(self.be.sourcedir, ldir) > - if os.path.isdir(fldir): > + > + try: > + for remotes in self._shellcmd("git remote -v", > self.be.sourcedir).split("\n"): > try: > - for line in self._shellcmd("git remote -v", > fldir).split("\n"): > - try: > - remote = line.split("\t")[1].split(" ")[0] > - if remote not in cached_layers: > - cached_layers[remote] = fldir > - except IndexError: > - pass > - except ShellCmdException: > - # ignore any errors in collecting git remotes > + remote = remotes.split("\t")[1].split(" ")[0] > + if remote not in cached_layers: > + cached_layers[remote] = self.be.sourcedir > + except IndexError: > pass > + except ShellCmdException: > + # ignore any errors in collecting git remotes this is an > optional > + # step > + pass > + > + logger.info("Using pre-checked out source for layer %s", > cached_layers) > > layerlist = [] > > -- > 2.1.4 > > -- > _______________________________________________ > toaster mailing list > [email protected] > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
