git-lfs support

LFS support in JGit:


https://dev.eclipse.org/mhonarc/lists/jgit-dev/msg02908.html

It seems that JGit now has lfs support… https://github.com/eclipse/jgit
It would be really great if subgit could have the ability to sync an svn repo with a git repo with lfs!

Any plans to work on this feature in the next time?

Hello Steffen,
I don’t think we will add this feature in the nearest future.

Is this more possible now that SubGit is using JGit 4.2?

Hello Carson, I’ll have a look what’s changed in JGit 4.2 but library wasn’t limiting factor for us. It was mostly other issues like SGT-1250 and this feature complexity in combination with other features.

Any updates on this? We do use Git-LFS as well and currently need to exclude the paths from SubGit and update the blobs explicitly for SVN and Git. This is cumbersome.

Hello Torben,
to this moment no updates from SubGit side and still in the nearest future we will not add this feature.

On the other hand there’s a progress in Git itself and with native Git development Git LFS is becoming less relevant these days (and it’s good because Git LFS is an ugly hack).

Since 2.17.0 Git supports “–filter” option of “git clone”

{code}

  • The machinery to clone & fetch, which in turn involves packing and
    unpacking objects, has been told how to omit certain objects using
    the filtering mechanism introduced by another topic. It now knows
    to mark the resulting pack as a promisor pack to tolerate missing
    objects, laying foundation for “narrow” clones.
    {code}

The better documentation of the option is here:

Basically this allows the user to have large objects in the central Git repository but exclude them at the moment of cloning and all the missing objects are lazily downloaded on demand when the user checks out this or that branch. This is an alternative to Git LFS which is more flexible (one can choose what to exclude at the moment of cloning) and more consistent (the blobs are kepts in the same repository at their places not in a separate storage, all the tools automatically support this, no need for special LFS support).

I’m not sure what’s the current state but Git definitely moves towards that direction and I hope this will replace LFS if hasn’t done that already.

To use that feature one should make sure that Git server software has pretty recent Git version because the filtering is done at protocol level, so Git server should support this protocol modification. Otherwise I suspect it will backup to the usual “clone everything” approach.

I hope this information helps.