I run a GitLab instance and would like to allow my users to upload files of almost any size.
It is well-known that git still has problems with large files. I am aware of approaches to circumvent this issue by storing the files somewhere else and versioning just the metadata, e.g. git-annex, git-media and git-fat. Are any of these integrated into GitLab, or would it be easy to do so?
How Does Git LFS Work? Git LFS uses pointers instead of the actual files or binary large objects (blobs). So, instead of writing large files/blobs to a Git repository, you write a pointer file, and the files/blobs themselves are written to a separate server. Plus, with Git LFS, multiple servers can be used.
Project storage limitNamespaces on a GitLab SaaS paid tier (Premium and Ultimate) have a storage limit on their project repositories. A project's repository has a storage quota of 10 GB.
GitHub limits the size of files allowed in repositories. If you attempt to add or update a file that is larger than 50 MB, you will receive a warning from Git. The changes will still successfully push to your repository, but you can consider removing the commit to minimize performance impact.
Git LFS handles large files by storing references to the file in the repository, but not the actual file itself. To work around Git's architecture, Git LFS creates a pointer file which acts as a reference to the actual file (which is stored somewhere else). GitHub manages this pointer file in your repository.
This is discussed and open for consideration in this issue
git-annex can manage links afaik.
But it won't allow me to actually store or distribute any files.GitLab team ADMIN GitLab team (Admin, Gitlab) commented · October 07, 2013 16:51
Consider looking into git-annex
But this isn't implemented yet.
Before 5.0, GitLab was using gitolite as an authorization layer (replaced since by gitlab-shell).
And incidentally, gitolite just integrated git-annex support (commit b23aed9, March 20th, 2014).
Since GitLab 7.8 (Feb 2015), git-annex is integrated:
As far as we know GitLab is the first git repository management solution that integrates git-annex.
This is possible because both git-annex and GitLab stay very close to the unix paradigms. Internally GitLab uses GitLab Shell to handle ssh access and this was a great integration point forgit-annex
.
We've added a setting to GitLab Shell so you can disable GitLab Annex support if you don't want it.
As of February 18 2015 git-annex is supported on GitLab 7.8 Enterprise Edition
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With