v2.0.0
Git LFS v2.0.0 brings a number of important bug fixes, some new features, and
a lot of internal refactoring. It also completely removes old APIs that were
deprecated in Git LFS v0.6.
Locking
File Locking is a brand new feature that lets teams communicate when they are
working on files that are difficult to merge. Users are not able to edit or push
changes to any files that are locked by other users. While the feature has been
in discussion for a year, we are releasing a basic locking implementation to
solicit feedback from the community.
You can read an overview of how file locking works on the wiki.
Transfer Queue
LFS 2.0 introduces a new Git Scanner, which walks a range of Git commits looking
for LFS objects to transfer. The Git Scanner is now asynchronous, initiating
large uploads or downloads in the Transfer Queue immediately once an LFS object
is found. Previously, the Transfer Queue waited until all of the Git commits
have been scanned before initiating the transfer. The Transfer Queue also
automatically retries failed uploads and downloads more often.
Deprecations
Git LFS v2.0.0 also drops support for the legacy API in v0.5.0. If you're still
using LFS servers on the old API, you'll have to stick to v1.5.6.
Features
- Mid-stage locking support #1769 (@sinbad)
- Define lockable files, make read-only in working copy #1870 (@sinbad)
- Check that files are not uncommitted before unlock #1896 (@sinbad)
- Fix
lfs unlock --force
on a missing file #1927 (@technoweenie) - locking: teach pre-push hook to check for locks #1815 (@ttaylorr)
- locking: add
--json
flag #1814 (@ttaylorr) - Implement local lock cache, support querying it #1760 (@sinbad)
- support for client certificates pt 2 #1893 (@technoweenie)
- Fix clash between progress meter and credential helper #1886 (@technoweenie)
- Teach uninstall cmd about --local and --system #1887 (@technoweenie)
- Add
--skip-repo
option togit lfs install
& use in tests #1868 (@sinbad) - commands: convert push, pre-push to use async gitscanner #1812 (@ttaylorr)
- tq: prioritize transferring retries before new items #1758 (@ttaylorr)
Bugs
- ensure you're in the correct directory when installing #1793 (@technoweenie)
- locking: make API requests relative to repository, not root #1818 (@ttaylorr)
- Teach 'track' about CRLF #1914 (@technoweenie)
- Teach 'track' how to handle empty lines in .gitattributes #1921 (@technoweenie)
- Closing stdout pipe before function return #1861 (@monitorjbl)
- Custom transfer terminate #1847 (@sinbad)
- Fix Install in root problems #1727 (@technoweenie)
- cat-file batch: read all of the bytes #1680 (@technoweenie)
- Fixed file paths on cygwin. #1820, #1965 (@creste, @ttaylorr)
- tq: decrement uploaded bytes in basic_upload before retry #1958 (@ttaylorr)
- progress: fix never reading bytes with sufficiently small files #1955 (@ttaylorr)
- tools: fix truncating string fields between balanced quotes in GIT_SSH_COMMAND #1962 (@ttaylorr)
- commands/smudge: treat empty pointers as empty files #1954 (@ttaylorr)
Misc
- all: build using Go 1.8 #1952 (@ttaylorr)
- Embed the version information into the Windows executable #1689 (@sschuberth)
- Add more meta-data to the Windows installer executable #1752 (@sschuberth)
- docs/api: object size must be positive #1779 (@ttaylorr)
- build: omit DWARF tables by default #1937 (@ttaylorr)
- Add test to prove set operator [] works in filter matching #1768 (@sinbad)
- test: add ntlm integration test #1840 (@technoweenie)
- lfs/tq: completely remove legacy support #1686 (@ttaylorr)
- remove deprecated features #1679 (@technoweenie)
- remove legacy api support #1629 (@technoweenie)
SHA-256 hashes
git-lfs-freebsd-amd64-2.0.0.tar.gz
978c5713b7341483a2bd20f6e3992675a06c7ca8a2678fd2a4ed6d98fb561463
git-lfs-linux-386-2.0.0.tar.gz
b3fb6a5140eba544f95f9eae41b61504da90cb4efefa25766e2363b0ae8a8421
git-lfs-linux-amd64-2.0.0.tar.gz
4026991309d42979018c8e784630f07b46fd1a3717b668d2caf303f48135fca1
git-lfs-windows-2.0.0.exe
da7196b21a76a8f6ac23a6b0d8f283d979178c9bef84f2ba2cca9a2dff32c589
git-lfs-windows-386-2.0.0.zip
b9330e8dfc952a0916fd35450b27235a2a8bb9add7e837ab948c16aaf76498d3
git-lfs-windows-amd64-2.0.0.zip
88747aa174a748b5a9559d5bc5845cb7ed60dfc240b32b3e4f230c52692a7f6b
git-lfs-darwin-386-2.0.0.tar.gz
d9bfce0e97afa4ea435f0313f5c04a2adf73b751e56d7f0cf1dda672089cf6ba
git-lfs-darwin-amd64-2.0.0.tar.gz
fde18661baef286f0a942adf541527282cf8cd87b955690e10b60b621f9b1671
git-lfs-freebsd-386-2.0.0.tar.gz
b4a4534815fd26e06c6b2e7b24cbaa41e97df54862876a96db1d4f4fe9e9a3b8