Today we’re announcing the next major release of Git LFS: v2.0.0.
The official release notes have the complete list of all the new features, performance improvements, and more. In the meantime, here’s our look at a few of our newest features:
With Git LFS 2.0.0 you can now lock files that you’re actively working on, preventing others from pushing to the Git LFS server until you unlock the files again.
This will prevent merge conflicts as well as lost work on non-mergeable files at the filesystem level. While it may seem to contradict the distributed and parallel nature of Git, file locking is an important part of many software development workflows—particularly for larger teams working with binary assets.
# This tells LFS to track *.tga files and make them lockable. # They will appear as read-only on the filesystem. $ git lfs track "*.tga" --lockable # To acquire the lock and make foo.tga writeable: $ git lfs lock foo.tga # foo.tga is now writeable $ git add foo.tga $ git commit ... $ git push # Once you're ready to stop work, release the file so others can work on it. $ git lfs unlock foo.tga
Git LFS v2.0.0 also comes with a host of other great features, bug fixes, and other changes.
Our transfer queue, the mechanism responsible for uploading and downloading files, is faster, more efficient, and more resilient to failure.
To dive in, visit our release notes to learn more.
Git LFS has tremendously improved internals, particularly in Git and filesystem operations.
pull operations have been optimized to run concurrently with the underlying tree scans necessary to detect LFS objects. Repositories with large trees can begin the
pull operation immediately, while the tree scan takes place, greatly reducing the amount of time it takes to complete these operations.
The mechanism that scans for files tracked by LFS has been enhanced to ignore directories included in your repository’s
.gitignore, improving the efficiency of these operations.
In Git LFS v1.5.0, we introduced the
process filter (along with changes in Git v2.11) to dramatically improve performance across multiple platforms, thanks to contributions from @larsxschneider.
Since its release, Git LFS has benefited from the contributions of 81 members of the open source community. There have been 1,008 pull-requests, 851 of which have been merged into an official release. Git LFS would not be possible without the gracious efforts of our wonderful contributors. Special thanks to @sinbad who contributed to our work on file locking.
File locking is an early release, so we’re eager to hear your feedback and thoughts on how the feature should work.