Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: John Keeping <john@metanate.com>
To: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	"Yann E . MORIN" <yann.morin.1998@free.fr>,
	Vincent Fazio <vfazio@xes-inc.com>,
	Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH 1/1] download/git: support Git LFS
Date: Thu, 6 Jan 2022 15:03:50 +0000	[thread overview]
Message-ID: <YdcE1oBg+tvkNeXs@donbot> (raw)
In-Reply-To: <d28ff21d-c2bf-f489-2d09-9f01936f1337@mind.be>

Hi Arnout,

On Thu, Jan 06, 2022 at 11:35:21AM +0100, Arnout Vandecappelle wrote:
>  I finally applied this to master, with a few minor changes.

Thanks for merging this!

> On 21/01/2020 21:33, Vincent Fazio wrote:
> > From: John Keeping <john@metanate.com>
> > 
> > Git Large File Storage replaces large files with text pointers in the
> > Git repository while storing the contents on a remote server.  If a
> > repository is using this extension, then git-lfs must be used to
> > checkout the large files before the source archive is generated.
> > 
> > Signed-off-by: John Keeping <john@metanate.com>
> > [vfazio:
> >    - add git-lfs to DL_TOOLS_DEPENDENCIES
> >    - fixup for 5a0d6813948fea2cdb88a2e35984520eec856dec
> >      ("infra/pkg-download: make the DOWNLOAD macro fully parameterised")
> > ]
> > Signed-off-by: Vincent Fazio <vfazio@xes-inc.com>
> 
> [snip]
> 
> > +# If there are large files then fetch them.
> > +if [ ${large_file} -eq 1 ]; then
> > +    _git lfs install
> 
>  AFAICS an lfs install is not needed. IMHO it's pretty bad to do that
> because it updates ~/.gitconfig, which Buildroot shouldn't do. We could do
> lfs install --local, but even that is not needed. The lfs install just makes
> sure that lfs is done automatically whenever you do commit or pull or
> something like that, but in Buildroot we always do it explicitly so the
> smudge filter isn't needed.

I had a local update with --local.  Unfortunately it seems that install
is necessary as when testing the committed version (having removed the
filter config from ~/.gitconfig) I get:

	Cannot checkout LFS objects, Git LFS is not installed.

I'll send a patch to do `git lfs install --local` here.

> > +    _git lfs fetch
> > +    _git lfs checkout
> 
>  As already mentioned by Yann, this doesn't work when combined with
> submodules. The solution is pretty trivial:
> 
>     # If there are also submodules, recurse into them,
>     if [ ${recurse} -eq 1 ]; then
>         _git submodule foreach --recursive ${GIT} lfs fetch
>         _git submodule foreach --recursive ${GIT} lfs checkout
>     fi
> 
>  I haven't actually tested this though.

I have a test repo with LFS submodules and I can confirm this works
(modulo the install concern above).

>  Vincent (or anybody), it would be nice to have a runtime test for this
> feature. support/testing/tests/download/br2-external/git-refs/package/git-submodule-{enabled,disabled}
> can be a good source of inspiration. Only I'm not sure if it's possible to
> set up an LFS repository that is purely file-based.

Yes, I think you're right that LFS requires HTTPS.  It's possible to
combine that with any Git protocol, but the LFS transfer is always
HTTPS, so any runtime tests would require a temporary server.


John
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

      reply	other threads:[~2022-01-06 15:27 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-21 20:33 [Buildroot] [PATCH 1/1] download/git: support Git LFS Vincent Fazio
2022-01-06 10:35 ` Arnout Vandecappelle
2022-01-06 15:03   ` John Keeping [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YdcE1oBg+tvkNeXs@donbot \
    --to=john@metanate.com \
    --cc=arnout@mind.be \
    --cc=buildroot@buildroot.org \
    --cc=thomas.de_schampheleire@nokia.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vfazio@xes-inc.com \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox