[bitbake-devel] [PATCH 4/5] fetch2/gitsm: Add clean function
Lisicki, Raphael
raphael.lisicki at siemens.com
Thu Mar 14 12:34:35 UTC 2019
I have not fully understand the logic but I am wondering what happens here is a submodule is located in two different repositories? Wouldn't a clean of one module delete submodules of the other one as well?
Best regards
Raphael
> -----Original Message-----
> From: bitbake-devel-bounces at lists.openembedded.org <bitbake-devel-
> bounces at lists.openembedded.org> On Behalf Of Robert Yang
> Sent: Thursday, March 14, 2019 10:28 AM
> To: bitbake-devel at lists.openembedded.org
> Subject: [bitbake-devel] [PATCH 4/5] fetch2/gitsm: Add clean function
>
> The git's clean can only remove parent git repo from DL_DIR, but doesn't
> remove
> submodules, this patch fixes the problem.
>
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
> bitbake/lib/bb/fetch2/gitsm.py | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/bitbake/lib/bb/fetch2/gitsm.py b/bitbake/lib/bb/fetch2/gitsm.py
> index b21fed2..bb61093 100644
> --- a/bitbake/lib/bb/fetch2/gitsm.py
> +++ b/bitbake/lib/bb/fetch2/gitsm.py
> @@ -76,8 +76,8 @@ class GitSM(Git):
> for name in ud.names:
> try:
> gitmodules = runfetchcmd("%s show %s:.gitmodules" %
> (ud.basecmd, ud.revisions[name]), d, quiet=True, workdir=workdir)
> - except:
> - # No submodules to update
> + except Exception as esc:
> + logger.info("No submodules found: %s" % workdir)
> continue
>
> for m, md in parse_gitmodules(gitmodules).items():
> @@ -164,6 +164,17 @@ class GitSM(Git):
> Git.download(self, ud, d)
> self.process_submodules(ud, ud.clonedir, download_submodule, d)
>
> + def clean(self, ud, d):
> + def clean_submodule(ud, url, module, modpath, d):
> + try:
> + newfetch = Fetch([url], d, cache=False)
> + newfetch.clean()
> + except Exception as e:
> + logger.warn('gitsm: submodule clean failed: %s %s' %
> (type(e).__name__, str(e)))
> +
> + self.process_submodules(ud, ud.clonedir, clean_submodule, d)
> + Git.clean(self, ud, d)
> +
> def unpack(self, ud, destdir, d):
> def unpack_submodules(ud, url, module, modpath, d):
> url += ";bareclone=1;nobranch=1"
> --
> 2.7.4
>
> --
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/bitbake-devel
More information about the bitbake-devel
mailing list