Using the Filestore

All clients intending to use the filestore must first install the Git-LFS Client and then run git lfs init to register the hooks globally.
This version of GitBlit has been verified with Git-LFS client version 0.6.0 which requires Git v1.8.2 or higher.

Clone

Just git clone as usual, no further action is required as GitBlit is configured to use the default Git-LFS end point {repository}/info/lfs/objects/.
If the repository uses a 3rd party Git-LFS server you will need to manually configure the correct endpoints.

Add

After configuring the file types or paths to be tracked using git lfs track "*.bin" just add files as usual with git add command.
Tracked files can also be configured manually using the .gitattributes file.

Remove

When you remove a Git-LFS tracked file only the pointer file will be removed from your repository.
All files remain on the server to allow previous versions to be checked out.

Learn more...

See the current Git-LFS specification for further details.


Limitations & Warnings

GitBlit currently provides a server-only implementation of the opensource Git-LFS API, other implementations are available.
However, until JGit provides Git-LFS client capabilities some GitBlit features may not be fully supported when using the filestore. Notably:

  • Mirroring a repository that uses Git-LFS - Only the pointer files, not the large files, are mirrored.
  • Federation - Only the pointer files, not the large files, are transfered.

GitBlit Configuration

GitBlit provides the following configuration items when using the filestore:

filestore.storageFolder

Defines the path on the server where filestore objects are to be saved. This defaults to ${baseFolder}/lfs

filestore.maxUploadSize

Defines the maximum allowable size that can be uploaded to the filestore. Once a file is uploaded it will be unaffected by later changes in this property. This defaults to -1 indicating no limits.