Re: Impossible to push my ports directory to my CI/CD pipeline

From: Brooks Davis <brooks_at_freebsd.org>
Date: Tue, 01 Oct 2024 19:37:45 UTC
On Tue, Oct 01, 2024 at 07:04:17PM +0000, Brooks Davis wrote:
> On Tue, Oct 01, 2024 at 12:00:30PM +0300, Matthias Fechner wrote:
> > Hi Dave,
> > 
> > Am 01.10.2024 um 10:04 schrieb Dave Cottlehuber:
> > > I'm curious why you use the `lfs` here, I guess its just to
> > > show lfs-related issues, and normally you don't use it?
> > > 
> > > Anyway on a fresh checkout, this works fine:
> > > 
> > > git clone -vv git@gitrepo.freebsd.org:ports.git -b main ports
> > > 
> > > trying `git lfs clone ...` reports:
> > > 
> > > WARNING: 'git lfs clone' is deprecated and will not be updated
> > >            with new flags from 'git clone'
> > > 
> > > but also has no issues.
> > > 
> > > In either case, `git lfs ls-files` shows nothing.
> > > 
> > > It's not clear to me how git "knows" about lfs, but there are
> > > a bunch of XDG_DIR config files that may impact this, viz:
> > > 
> > > https://git-scm.com/docs/gitattributes
> > > 
> > > > If I now try to push to my local repo I get:
> > > > 
> > > > git push origin
> > > > Warning: untrusted X11 forwarding setup failed: xauth key data not generated
> > > > Locking support detected on remote "origin". Consider enabling it with:
> > > >   ?? $ git config
> > > > lfs.https://gitlab.fechner.net/mfechner/Gitlab.git/info/lfs.locksverify true
> > > > Unable to find source for object
> > > > 99a670c083e000008ee29dd972b60cbad6ade1d6ec024b30ff45f41da3d19e1d (try
> > > My current thinking is there's nothing (as yet) obviously wrong with
> > > FreeBSD's git repos, but there's possibly something interacting with gitlab.
> > > 
> > > Can you create a new github repo, and try pushing your ports tree to that,
> > > to see if it sees the same issue?
> > > 
> > > Given I can't replicate this here, perhaps there is a $SOMEWHERE}/.config/git/attributes
> > > or similar /config file that influences git tooling?
> > 
> > 
> > I just did a fresh clone:
> > git clone git@gitrepo.freebsd.org:ports.git
> > 
> > cd ports
> > 
> > git lfs ls-files --all
> > 6d0aef4ba9 - java/eclipse/files/addons/eclipse.platform.swt/binaries/org.eclipse.swt.gtk.freebsd.aarch64/libswt-atk-gtk-4965r11.so
> > ed324ddc16 - java/eclipse/files/addons/eclipse.platform.swt/binaries/org.eclipse.swt.gtk.freebsd.aarch64/libswt-awt-gtk-4965r11.so
> ...
> > 
> > 
> > 
> > so it seems that there is something in the FreeBSD repository. This can maybe
> > get only fixed be rewrite the git history, but lets see, I'm currently not
> > sure as no one else is seeing this...
> 
> Hmm, this is quite bizzare.  It looks like running `git lfs ls-files --all`
> causes the repo to be lfs enabled and adds the following to the
> .git/config file:
> 
> [lfs]
>         repositoryformatversion = 0
> 
> That's surprising and a bit annoying.
> 
> I also see those files listed and they don't exist in the current
> checkout.
> 
> Digging further the following commit introduced lfs files:
> 
> commit c94e4ced329298efb06189d1c6db26e3d6ff3eef
> Author: Vladimir Druzenko <vvd@FreeBSD.org>
> Date:   Fri Sep 13 15:54:52 2024 +0300
> 
>     java/eclipse: fix build consumer devel/subversive, commit files
>     ignored with .gitignore
> <...>
> 
> 
> This commit removed them, but they are still in history so anything that
> checks that the full history is intact is now broken:
> 
> commit 3ec21e417cd5752c96b88587a5a605567ba5cd19
> Author: Norbert Grundmann <ngrundmann@gmx.de>
> Date:   Fri Sep 20 03:14:47 2024 +0300
> 
>     java/eclipse: Remove unnecessary *.so files
> <...>

I've done some searching at it looks like there are gitlab options to
disable the various checks.  I don't admin any gitlab instances so don't
know how to translate this into something you can use, but:

https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/lib/gitlab/checks/lfs_check.rb?ref_type=heads

seems to show an lfs_check.objects_missing knob to disable the precommit
check.  You might also need to disable some lfs integrity checks.

-- Brooks