All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] git.py: skip smudging if lfs=0 is set
@ 2020-05-28 14:18 Mauro Queirós
  2020-05-28 14:18 ` [PATCH 2/3] git.py: LFS bitbake note should not be printed if need_lfs is not set Mauro Queirós
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Mauro Queirós @ 2020-05-28 14:18 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Mauro Queiros

Git-LFS objects were being fetched even when lfs=0 was not set.
This patch disables LFS smudging when lfs=0. That way, only the LFS pointers
are downloaded during checkout.

Signed-off-by: Mauro Queiros <maurofrqueiros@gmail.com>
---
 lib/bb/fetch2/git.py | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index 5b3793a7..4c7d388e 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -475,6 +475,9 @@ class Git(FetchMethod):
 
         need_lfs = ud.parm.get("lfs", "1") == "1"
 
+        if not need_lfs:
+            ud.basecmd = "GIT_LFS_SKIP_SMUDGE=1 " + ud.basecmd
+
         source_found = False
         source_error = []
 
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] git.py: LFS bitbake note should not be printed if need_lfs is not set.
  2020-05-28 14:18 [PATCH 1/3] git.py: skip smudging if lfs=0 is set Mauro Queirós
@ 2020-05-28 14:18 ` Mauro Queirós
  2020-05-28 14:18 ` [PATCH 3/3] git.py: Use the correct branch to check if the repository has LFS objects Mauro Queirós
  2020-05-29  5:46 ` [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set Richard Purdie
  2 siblings, 0 replies; 5+ messages in thread
From: Mauro Queirós @ 2020-05-28 14:18 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Mauro Queiros

The message "Repository %s has LFS content but it is not being fetched" was
being printed, even when Git-LFS was available and "lfs=1" was set. In those
situations, we want to fetch LFS content, so that message would not make sense.

Signed-off-by: Mauro Queiros <maurofrqueiros@gmail.com>
---
 lib/bb/fetch2/git.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index 4c7d388e..eab76a10 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -509,7 +509,7 @@ class Git(FetchMethod):
         if self._contains_lfs(ud, d, destdir):
             if need_lfs and not self._find_git_lfs(d):
                 raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
-            else:
+            elif not need_lfs:
                 bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
 
         if not ud.nocheckout:
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] git.py: Use the correct branch to check if the repository has LFS objects.
  2020-05-28 14:18 [PATCH 1/3] git.py: skip smudging if lfs=0 is set Mauro Queirós
  2020-05-28 14:18 ` [PATCH 2/3] git.py: LFS bitbake note should not be printed if need_lfs is not set Mauro Queirós
@ 2020-05-28 14:18 ` Mauro Queirós
  2020-05-29  5:46 ` [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set Richard Purdie
  2 siblings, 0 replies; 5+ messages in thread
From: Mauro Queirós @ 2020-05-28 14:18 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Mauro Queiros

Function "contains_lfs" was only looking at the master branch when searching for LFS
content. LFS may be configured in specific branches only, so we need to use the
correct branch.

Signed-off-by: Mauro Queiros <maurofrqueiros@gmail.com>
---
 lib/bb/fetch2/git.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
index eab76a10..b7841c43 100644
--- a/lib/bb/fetch2/git.py
+++ b/lib/bb/fetch2/git.py
@@ -566,8 +566,15 @@ class Git(FetchMethod):
         """
         Check if the repository has 'lfs' (large file) content
         """
-        cmd = "%s grep lfs HEAD:.gitattributes | wc -l" % (
-                ud.basecmd)
+
+        if not ud.nobranch:
+            branchname = ud.branches[ud.names[0]]
+        else:
+            branchname = "master"
+
+        cmd = "%s show %s:.lfsconfig" % (
+                ud.basecmd, branchname)
+
         try:
             output = runfetchcmd(cmd, d, quiet=True, workdir=wd)
             if int(output) > 0:
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set
  2020-05-28 14:18 [PATCH 1/3] git.py: skip smudging if lfs=0 is set Mauro Queirós
  2020-05-28 14:18 ` [PATCH 2/3] git.py: LFS bitbake note should not be printed if need_lfs is not set Mauro Queirós
  2020-05-28 14:18 ` [PATCH 3/3] git.py: Use the correct branch to check if the repository has LFS objects Mauro Queirós
@ 2020-05-29  5:46 ` Richard Purdie
  2020-05-29 10:12   ` Mauro Queirós
  2 siblings, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2020-05-29  5:46 UTC (permalink / raw)
  To: Mauro Queirós, bitbake-devel

On Thu, 2020-05-28 at 15:18 +0100, Mauro Queirós wrote:
> Git-LFS objects were being fetched even when lfs=0 was not set.
> This patch disables LFS smudging when lfs=0. That way, only the LFS
> pointers
> are downloaded during checkout.
> 
> Signed-off-by: Mauro Queiros <maurofrqueiros@gmail.com>
> ---
>  lib/bb/fetch2/git.py | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
> index 5b3793a7..4c7d388e 100644
> --- a/lib/bb/fetch2/git.py
> +++ b/lib/bb/fetch2/git.py
> @@ -475,6 +475,9 @@ class Git(FetchMethod):
>  
>          need_lfs = ud.parm.get("lfs", "1") == "1"
>  
> +        if not need_lfs:
> +            ud.basecmd = "GIT_LFS_SKIP_SMUDGE=1 " + ud.basecmd
> +
>          source_found = False
>          source_error = []

Thanks for the patches, the sound good. Unfortunately they cause
bitbake-selftest to fail:

https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/991/steps/8/logs/step1d

Cheers,

Richard


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set
  2020-05-29  5:46 ` [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set Richard Purdie
@ 2020-05-29 10:12   ` Mauro Queirós
  0 siblings, 0 replies; 5+ messages in thread
From: Mauro Queirós @ 2020-05-29 10:12 UTC (permalink / raw)
  To: Richard Purdie; +Cc: bitbake-devel

[-- Attachment #1: Type: text/plain, Size: 1345 bytes --]

That's because I was using .lfsconfig instead of .gitattributes in
"contains_lfs" function. self-tests only use the latter.
I've send v2 patches.

Richard Purdie <richard.purdie@linuxfoundation.org> escreveu no dia sexta,
29/05/2020 à(s) 06:46:

> On Thu, 2020-05-28 at 15:18 +0100, Mauro Queirós wrote:
> > Git-LFS objects were being fetched even when lfs=0 was not set.
> > This patch disables LFS smudging when lfs=0. That way, only the LFS
> > pointers
> > are downloaded during checkout.
> >
> > Signed-off-by: Mauro Queiros <maurofrqueiros@gmail.com>
> > ---
> >  lib/bb/fetch2/git.py | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/lib/bb/fetch2/git.py b/lib/bb/fetch2/git.py
> > index 5b3793a7..4c7d388e 100644
> > --- a/lib/bb/fetch2/git.py
> > +++ b/lib/bb/fetch2/git.py
> > @@ -475,6 +475,9 @@ class Git(FetchMethod):
> >
> >          need_lfs = ud.parm.get("lfs", "1") == "1"
> >
> > +        if not need_lfs:
> > +            ud.basecmd = "GIT_LFS_SKIP_SMUDGE=1 " + ud.basecmd
> > +
> >          source_found = False
> >          source_error = []
>
> Thanks for the patches, the sound good. Unfortunately they cause
> bitbake-selftest to fail:
>
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/991/steps/8/logs/step1d
>
> Cheers,
>
> Richard
>
>

[-- Attachment #2: Type: text/html, Size: 2074 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-05-29 10:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-28 14:18 [PATCH 1/3] git.py: skip smudging if lfs=0 is set Mauro Queirós
2020-05-28 14:18 ` [PATCH 2/3] git.py: LFS bitbake note should not be printed if need_lfs is not set Mauro Queirós
2020-05-28 14:18 ` [PATCH 3/3] git.py: Use the correct branch to check if the repository has LFS objects Mauro Queirós
2020-05-29  5:46 ` [bitbake-devel] [PATCH 1/3] git.py: skip smudging if lfs=0 is set Richard Purdie
2020-05-29 10:12   ` Mauro Queirós

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.