[Development] Policy for examples with large resources?

Alejandro Exojo alex at vikingsoft.eu
Sat Jan 28 10:27:34 CET 2017


On Friday 27 January 2017 15:48:54 Sean Harmer wrote:
> Obviously putting these directly in the qt3d repo is not ideal yet we need 
> examples to demonstrate this stuff (and more in the future). Is there a way
> we  can get a git-lfs repo set up as a submodule to be referenced by the
> qt3d repo?
> 
> Or is there some other solution that would be preferred?

I wholeheartedly recommend that you diverge as little as possible from Git 
LFS. The experience on the client side is really good, and with git v2.11 
(easy to compile locally if your vendor doesn't ship it) the speed has been 
increased 70 times with a new filter system, so it is close to the speed that 
native support would give you.

The problem for the Qt project is server side. Github, Gitlab and Bitbucket 
have support for LFS, but there is no production ready open source standalone 
LFS server (https://github.com/git-lfs/git-lfs/wiki/Implementations) that 
could live side by side with gerrit. Using those 3rd parties would be an 
option, but I don't see how, given that contribution to gerrit is different 
than the pull-request model of those.

The LFS blobs are uploaded as a pre-push hook, so that could be replaced by a 
script that runs rsync to upload your .git/lfs/objects that are not yet on the 
server. That way you ensure all versions are kept.

Then, the download of files happens in the "smudge" filter. You could replace 
that by a script that checks if the blob is there, downloads it, then calls 
git-lfs-smudge. I think you bypass all Git LFS usage of the network, but then 
your history would still be compatible, and the workflow good.

Oh, and there is also a custom transfer support, but I haven't tried myself: 
https://github.com/git-lfs/git-lfs/blob/master/docs/custom-transfers.md

-- 
Viking Software, Qt and C++ developers for hire
http://www.vikingsoft.eu



More information about the Development mailing list