[Development] Policy for examples with large resources?
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:
Viking Software, Qt and C++ developers for hire
More information about the Development