github.com/x-oss-byte/git-lfs@v2.5.2+incompatible/CHANGELOG.md (about) 1 # Git LFS Changelog 2 3 ## 2.5.2 (17 September, 2018) 4 5 ### Bugs 6 7 * config: Treat [host:port]:path URLs correctly #3226 (@saschpe) 8 * tq: Always provide a Content-Type when uploading files #3201 (@bk2204) 9 * commands/track: Properly `lfs track` files with escaped characters in their 10 name #3192 (@leonid-s-usov) 11 12 ### Misc 13 14 * packagecloud.rb: remove older versions #3210 (@andyneff) 15 16 ## 2.5.1 (2 August, 2018) 17 18 This release contains miscellaneous bug fixes since v2.5.0. Most notably, 19 release v2.5.1 allows a user to disable automatic Content-Type detection 20 (released in v2.5.0) via `git config lfs.contenttype false` for hosts that do 21 not support it. 22 23 ### Features 24 25 * tq: make Content-Type detection disable-able #3163 (@ttaylorr) 26 27 ### Bugs 28 29 * Makefile: add explicit rule for commands/mancontent_gen.go #3160 (@jj1bdx) 30 * script/install.sh: mark as executable #3155 (@ttaylorr) 31 * config: add origin to remote list #3152 (@PastelMobileSuit) 32 33 ### Misc 34 35 * docs/man/mangen.go: don't show non-fatal output without --verbose #3168 (@ttaylorr) 36 * LICENSE.md: update copyright year #3156 (@IMJ355) 37 * Makefile: silence some output #3164 (@ttaylorr) 38 * Makefile: list prerequisites for resource.syso #3153 (@ttaylorr) 39 40 ## 2.5.0 (26 July, 2018) 41 42 This release adds three new migration modes, updated developer ergonomics, and 43 a handful of bug fixes to Git LFS. 44 45 We would like to extend a special thanks to the following open-source 46 contributors: 47 48 * @calavera for fixing a broken Go test and adding support for custom 49 Content-Type headers in #3137 and #3138. 50 * @cbuehlmann for adding support for encoded character names in filepaths via 51 #3093. 52 * @larsxschneider for changing the default value of lfs.allowincompletepush in 53 #3109. 54 * @NoEffex for supporting TTL in SSH-based authentication tokens via #2867. 55 * @ssgelm for adding 'go generate' to our Debian packages via #3083. 56 57 ### Features 58 59 * Makefile: replace many scripts with make targets #3144 (@ttaylorr) 60 * {.travis,appveyor}.yml: upgrade to Go 1.10.3 #3146 (@ttaylorr) 61 * t: run tests using prove #3125 (@ttaylorr) 62 * commands/migrate: infer wildmatches with --fixup #3114 (@ttaylorr) 63 * Retry SSH resolution 5 times #2934 (@stanhu) 64 * Implement `migrate export` subcommand #3084 (@PastelMobileSuit) 65 * Add `--no-rewrite` flag to `migrate import` command #3029 (@PastelMobileSuit) 66 67 ### Bugs 68 69 * t: fix contains_same_elements() fn #3145 (@PastelMobileSuit) 70 * commands: warn if working copy is dirty #3124 (@ttaylorr) 71 * Ensure provided remote takes precedence over configured pushRemote #3139 (@PastelMobileSuit) 72 * Fix proxy unit tests. #3138 (@calavera) 73 * commands/command_migrate.go: loosen meaning of '--everything' #3121 (@ttaylorr) 74 * lfsapi: don't query askpass for given creds #3126 (@PastelMobileSuit) 75 * config/git_fetcher.go: mark 'lfs.allowincompletepush' as safe #3113 (@ttaylorr) 76 * fs: support multiple object alternates #3116 (@ttaylorr) 77 * commands/checkout: checkout over read-only files #3120 (@ttaylorr) 78 * test/testhelpers.sh: look for 64 character SHA-256's #3119 (@ttaylorr) 79 * config/config.go: case-insensitive error search #3098 (@ttaylorr) 80 * Encoded characters in pathnames #3093 (@cbuehlmann) 81 * Support default TTL for authentication tokens acquired via SSH #2867 (@NoEffex) 82 * commands/status.go: relative paths outside of root #3080 (@ttaylorr) 83 * Run `go generate` on commands in deb build #3083 (@ssgelm) 84 * lfsapi: prefer proxying from gitconfig before environment #3062 (@ttaylorr) 85 * commands/track: respect global- and system-level gitattributes #3076 (@ttaylorr) 86 * git/git.go: pass --multiple to git-fetch(1) when appropriate #3063 (@ttaylorr) 87 * commands/checkout: fix inaccurate messaging #3055 (@ttaylorr) 88 * commands/migrate: do not migrate empty commits #3054 (@ttaylorr) 89 * git/odb: retain trailing newlines in commit messages #3053 (@ttaylorr) 90 91 ### Misc 92 93 * Set original file content type on basic upload. #3137 (@calavera) 94 * README.md: Git for Windows ships LFS by default #3112 (@larsxschneider) 95 * change lfs.allowincompletepush default from true to false #3109 (@larsxschneider) 96 * *: replace git/odb with vendored copy #3108 (@ttaylorr) 97 * test/test-ls-files.sh: skip on CircleCI #3101 (@ttaylorr) 98 * lfsapi/ssh.go: use zero-value sentinels #3099 (@ttaylorr) 99 * README.md: add link to installation wiki page #3075 (@ttaylorr) 100 * docs/man/git-lfs.1.ronn: update casing and missing commands #3059 (@ttaylorr) 101 * commands/checkout: mark 'git lfs checkout' as deprecated #3056 (@ttaylorr) 102 103 ## 2.4.2 (28 May, 2018) 104 105 ### Bugs 106 107 * lfsapi: re-authenticate HTTP redirects when needed #3028 (@ttaylorr) 108 * lfsapi: allow unknown keywords in netrc file(s) #3027 (@ttaylorr) 109 110 ## 2.4.1 (18 May, 2018) 111 112 This release fixes a handful of bugs found and fixed since v2.4.0. In 113 particular, Git LFS no longer panic()'s after invalid API responses, can 114 correctly run 'fetch' on SHAs instead of references, migrates symbolic links 115 correctly, and avoids writing to `$HOME/.gitconfig` more than is necessary. 116 117 We would like to extend a "thank you" to the following contributors for their 118 gracious patches: 119 120 - @QuLogic fixed an issue with running tests that require credentials 121 - @patrickmarlier made it possible for 'git lfs migrate import' to work 122 correctly with symbolic links. 123 - @zackse fixed an inconsistency in `CONTRIBUTING.md` 124 - @zanglang fixed an inconsistency in `README.md` 125 126 Git LFS would not be possible without generous contributions from the 127 open-source community. For these, and many more: thank you! 128 129 ### Features 130 131 * script/packagecloud.rb: release on Ubuntu Bionic #2961 (@ttaylorr) 132 133 ### Bugs 134 135 * lfsapi: canonicalize extra HTTP headers #3010 (@ttaylorr) 136 * commands/lock: follow symlinks before locking #2996 (@ttaylorr) 137 * lfs/attribute.go: remove default value from upgradeables #2994 (@ttaylorr) 138 * git: include SHA1 in ref-less revisions #2982 (@ttaylorr) 139 * Do not migrate the symlinks to LFS objects. #2983 (@patrickmarlier) 140 * commands/uninstall: do not log about global hooks with --local #2976 (@ttaylorr) 141 * commands/run.go: exit 127 on unknown sub-command #2969 (@ttaylorr) 142 * commands/{un,}track: perform "prefix-agnostic" comparisons #2955 (@ttaylorr) 143 * commands/migrate: escape paths before .gitattributes #2933 (@ttaylorr) 144 * commands/ls-files: do not accept '--all' after '--' #2932 (@ttaylorr) 145 * tq: prevent uint64 underflow with invalid API response #2902 (@ttaylorr) 146 147 ### Misc 148 149 * test/test-env: skip comparing GIT_EXEC_PATH #3015 (@ttaylorr) 150 * remove reference to CLA from contributor's guide #2997 (@zackse) 151 * .gitattributes link is broken #2985 (@zanglang) 152 * commands: make --version a synonym for 'version' #2968, #3017 (@ttaylorr) 153 * test: ensure that git-mergetool(1) works with large files #2939 (@ttaylorr) 154 * README.md: note the correct PackageCloud URL #2960 (@ttaylorr) 155 * README.md: mention note about `git lfs track` retroactively #2948 (@ttaylorr) 156 * README.md: reorganize into Core Team, Alumni #2941 (@ttaylorr) 157 * README.md: :nail_care: #2942 (@ttaylorr) 158 * circle.yml: upgrade to 'version: 2' syntax #2928 (@ttaylorr) 159 * Use unique repo name for tests that require credentials. #2901 (@QuLogic) 160 161 ## 2.4.0 (2 March, 2018) 162 163 This release introduces a rewrite of the underlying file matching engine, 164 expands the API to include relevant refspecs for individual requests, 165 standardizes the progress output among commands, and more. 166 167 Please note: in the next MAJOR release (v3.0.0) the semantic meaning behind 168 `--include` and `--exclude` flags will change. As the details of exactly which 169 existing patterns will no longer function as previously are known, we will 170 indicate them here. Any `--include` or `--exclude` patterns used in v2.3.0 or 171 earlier are expected to work as previously in this release. 172 173 This release would not be possible without the open-source community. 174 Specifically, we would like to thank: 175 176 - @larsxschneider: for contributing fixes to the filter operation in `git lfs 177 fsck`, and `git lfs prune`, as well as the bug report leading to the 178 filepathfilter changes. 179 - @yfronto: for adding new Linux release targets. 180 - @stffabi: for adding support for NTLM with SSPI on Windows. 181 - @jeffreydwalter: for fixing memory alignment issues with `sync/atomic` on 182 32-bit architectures. 183 - @b4mboo: for adding a LFS configuration key to the list of safe configuration 184 options. 185 186 Without the aforementioned indviduals, this release would not have been 187 possible. Thank you! 188 189 ### Features 190 191 * __Support wildmatch-compliant options in `--include`, `--exclude`__ 192 * filepathfilter: implement using wildmatch #2875 (@ttaylorr) 193 * test: add wildmatch migration tests #2888 (@larsxschneider, @ttaylorr) 194 * __Expand the specification to include relevant refspecs__ 195 * verify locks against each ref being pushed #2706 (@technoweenie) 196 * Batch send refspec take 2 #2809 (@technoweenie) 197 * Run 1 TransferQueue per uploaded ref #2806 (@technoweenie) 198 * Locks/verify: full refspec #2722 (@technoweenie) 199 * send remote refspec for the other lock commands #2773 (@technoweenie) 200 * __Standardize progress meter output and implementation__ 201 * tq: standardized progress meter formatting #2811 (@ttaylorr) 202 * commands/fetch: unify formatting #2758 (@ttaylorr) 203 * commands/prune: unify formatting #2757 (@ttaylorr) 204 * progress: use git/githistory/log package for formatting #2732 (@ttaylorr) 205 * progress: remove `*progress.Meter` #2762 (@ttaylorr) 206 * tasklog: teach `*Logger` how to enqueue new `*SimpleTask`'s #2767 (@ttaylorr) 207 * progress: remove spinner.go #2759 (@ttaylorr) 208 * __Teach new flags, functionality to `git lfs ls-files`__ 209 * commands: teach '--all' to `git lfs ls-files` #2796 (@ttaylorr) 210 * commands/ls-files: show cached, tree-less LFS objects #2795 (@ttaylorr) 211 * commands/ls-files: add --include, --exclude #2793 (@ttaylorr) 212 * commands/ls-files: add '--size' flag #2764 (@ttaylorr) 213 * __Add new flags, functionality to `git lfs migrate`__ 214 * commands/migrate: support '^'-prefix refspec in arguments #2785 (@ttaylorr) 215 * commands/migrate: add '--skip-fetch' for offline migrations #2738 (@ttaylorr) 216 * git: prefer sending revisions over STDIN than arguments #2739 (@ttaylorr) 217 * __Release to new operating systems__ 218 * release lfs for ubuntu/artful too #2704 (@technoweenie) 219 * Adding Mint Sylvia to packagecloud.rb script #2829 (@yfronto) 220 * __New functionality in package `lfsapi`__ 221 * NTLM authentication with SSPI on windows #2871 (@stffabi) 222 * lfsapi/auth: teach DoWithAuth to respect http.extraHeaders #2733 (@ttaylorr) 223 * add support for url-specific proxies #2651 (@technoweenie) 224 * __Code cleanup in git.Config, package `localstorage`__ 225 * Tracked remote #2700 (@technoweenie) 226 * Replace git.Config #2692 (@technoweenie) 227 * Replace localstorage #2689 (@technoweenie) 228 * Remove last global config #2687 (@technoweenie) 229 * Git config refactor #2676 (@technoweenie) 230 231 ### Bugs 232 233 * all: fix 32-bit alignment issues with `sync/atomic` #2883 (@ttaylorr) 234 * all: memory alignment issues on 32-bit systems. #2880 (@jeffreydwalter) 235 * command/migrate: don't migrate remote references in bare repositories #2769 (@ttaylorr) 236 * commands/ls-files: behave correctly before initial commit #2794 (@ttaylorr) 237 * commands/migrate: allow for ambiguous references in migrations #2734 (@ttaylorr) 238 * commands: fill in missing printf arg #2678 (@technoweenie) 239 * config: Add `lfs.locksverify` to safe keys. #2797 (@b4mboo) 240 * don't replace pointers with objects if clean filter is not configured #2626 (@technoweenie) 241 * fsck: attach a filter to exclude unfetched items from fsck #2847 (@larsxschneider) 242 * git/githistory: copy entries from cache, elsewhere #2884 (@ttaylorr) 243 * git/githistory: migrate annotated tags correctly #2780 (@ttaylorr) 244 * git/odb: don't print extra newline after commit message #2784 (@ttaylorr) 245 * git/odb: extract identifiers from commits verbatim #2751 (@wsprent) 246 * git/odb: implement parsing for annotated `*Tag`'s #2778 (@ttaylorr) 247 * git/odb: retain newlines when parsing commit messages #2786 (@ttaylorr) 248 * lfs: PointerScanner is nil after error, so don't close #2699 (@technoweenie) 249 * lfsapi: Cred helper improvements #2695 (@technoweenie) 250 * lfsapi: retry requests changing access from none IF Auth header is empty #2621 (@technoweenie) 251 * prune: always prune excluded paths #2851 (@larsxschneider) 252 * status: fix incorrect formatting with unpushed objects #2746 (@ttaylorr) 253 * tasklog: don't drop updates in PercentageTask #2755 (@ttaylorr) 254 * test: Fix integration test early exit #2735 (@technoweenie) 255 * test: generate random repo names with fs-safe characters #2698 (@technoweenie) 256 257 ### Misc 258 259 * all: Nitpicks #2821 (@technoweenie) 260 * all: introduce package 'tlog' #2747 (@ttaylorr) 261 * all: remove CLA #2870 (@MikeMcQuaid) 262 * build: Specify the embedded Windows icon as part of versioninfo.json #2770 (@sschuberth) 263 * config,test: Testlib no global config #2709 (@mathstuf) 264 * config: add PushRemote() for checking `branch.*.pushRemote` and `remote.pushDefault` first #2715 (@technoweenie) 265 * docs: Added documentation for git-lfs-ls-files' `*/-` output. #2719 (@bilke) 266 * docs: Uninstall man page improvements #2730 (@dpursehouse) 267 * docs: Update usage info for post-checkout #2830 (@proinsias) 268 * docs: add 'git lfs prune' to main man page #2849 (@larsxschneider) 269 * docs: use consistent casing for Git #2850 (@larsxschneider) 270 * git/githistory: have `*RefUpdater` hold `*odb.ObjectDatabase` reference #2779 (@ttaylorr) 271 * progress: move CopyCallback (& related) to package 'tools' #2749 (@ttaylorr) 272 * progress: move `*progressLogger` implementation to package 'tools' #2750 (@ttaylorr) 273 * refspec docs #2820 (@technoweenie) 274 * script/test: run 'go tool vet' during testing #2788 (@ttaylorr) 275 * tasklog: introduce `*SimpleTask` #2756 (@ttaylorr) 276 * test: Ignore comment attr lines #2708 (@mathstuf) 277 * test: Wait longer for test lfs server to start. #2716 (@QuLogic) 278 * test: ensure commented attr lines are ignored #2736 (@ttaylorr) 279 * tools/humanize: add 'FormatByteRate' to format transfer speed #2810 (@ttaylorr) 280 * vendor: update 'xeipuuv/gojsonpointer' #2846 (@ttaylorr) 281 282 ## 2.3.4 (18 October, 2017) 283 284 ### Features 285 286 * 'git lfs install' updates filters with 'skip-smudge' option #2673 (@technoweenie) 287 288 ### Bugs 289 290 * FastWalkGitRepo: limit number of concurrent goroutines #2672 (@technoweenie) 291 * handle scenario where multiple configuration values exist in ~/.gitconfig #2659 (@shiftkey) 292 293 ## 2.3.3 (9 October, 2017) 294 295 ### Bugs 296 297 * invoke lfs for 'git update-index', fixing 'status' issues #2647 (@technoweenie) 298 * cache http credential helper output by default #2648 (@technoweenie) 299 300 ## 2.3.2 (3 October, 2017) 301 302 ### Features 303 304 * bump default activity timeout from 10s -> 30s #2632 (@technoweenie) 305 306 ### Bugs 307 308 * ensure files are marked readonly after unlocking by ID #2642 (@technoweenie) 309 * add files to index with path relative to current dir #2641 (@technoweenie) 310 * better Netrc errors #2633 (@technoweenie) 311 * only use askpass if credential.helper is not configured #2637 (@technoweenie) 312 * convert backslash to slash when writing to .gitattributes #2625 (@technoweenie) 313 314 ### Misc 315 316 * only copy req headers if there are git-configured extra headers #2622 (@technoweenie) 317 * update tracerx to add timestamps #2620 (@rubyist) 318 319 ## 2.3.1 (27 September, 2017) 320 321 ### Features 322 323 * add support for SSH_ASKPASS #2609 (@technoweenie) 324 * `git lfs migrate --verbose` option #2610 (@technoweenie) 325 * Support standalone custom transfer based on API URL prefix match #2590 (@sprohaska) 326 327 ### Bugs 328 329 * Improve invalid URL error messages #2614 (@technoweenie) 330 * Fix double counting progress bug #2608 (@technoweenie) 331 * trim whitespace from GIT_ASKPASS provided passwords #2607 (@technoweenie) 332 * remove mmap usage in Packfile reader #2600 (@technoweenie) 333 * `git lfs clone`: don't fetch for unborn repositories #2598 (@shiftkey) 334 335 ### Misc 336 337 * Windows Installer fixes: 338 * Show proper icon in add/remove programs list #2585 (@shiftkey) 339 * Make the Inno Setup installer script explicitly check for the binaries #2588 (@sschuberth) 340 * Improve compile-win-installer-unsigned.bat a bit #2586 (@sschuberth) 341 * Update migrate docs example for multiple file types #2596 (@technoweenie) 342 343 ## 2.3.0 (14 September, 2017) 344 345 Git LFS v2.3.0 includes performance optimizations for the `git-lfs-migrate(1)` 346 and `git-clone(1)` commands, new features, bug-fixes, and more. 347 348 This release was made possible by contributors to Git LFS. Specifically: 349 350 - @aleb: added support for "standalone" transfer agents, for using `rsync(1)` 351 and similar with Git LFS. 352 - @bozaro: added support for custom `.git/lfs/objects` directories via the 353 `lfs.storage` configuration option. 354 - @larsxschneider: fixed a recursive process leak when shelling out to Git, 355 added new features to `git lfs ls-files`, extra information in error 356 messages used for debugging, documentation changes and more. 357 - @mathstuf: contributed a documentation change clarifying LFS's handling of 358 empty pointer files. 359 - @rudineirk and @andyneff: updated our release process to build packages for 360 fedora/26. 361 - @ssgelm: ensured that LFS is able to be released on Ubuntu Universe. 362 363 To everyone who has contributed to this or previous releases of Git LFS: Thank 364 you! 365 366 ### Features 367 368 * git/odb/pack: improve `git lfs migrate` performance 369 * git/odb/pack: introduce packed object reassembly #2550 #2551 #2552 #2553 #2554 (@ttaylorr) 370 * git/odb/pack: teach packfile index entry lookups #2420 #2421 #2422 #2423 #2437 #2441 #2461 (@ttaylorr) 371 * git/{odb,githistory}: don't write unchanged objects #2541 (@ttaylorr) 372 * commands: improve `git clone` performance with 'delay' capability #2511 #2469 #2468 #2471 #2467 #2476 #2483 (@ttaylorr) 373 * commands: mark `git lfs clone` as deprecated #2526 (@ttaylorr) 374 * commands: enable `lfs.allowincompletepush` by default #2574 (@technoweenie) 375 * commands: teach '--everything' to `git lfs migrate` #2558 (@ttaylorr) 376 * commands: teach `git lfs ls-files` a '--debug' option #2540 (@larsxschneider) 377 * commands,lfs: warn on 4gb size conversion during clean #2510 #2507 #2459 (@ttaylorr) 378 * lfsapi/creds: teach about GIT_ASKPASS and core.askpass #2500 #2578 (@ttaylorr) 379 * commands/status: indicate missing objects #2438 (@ttaylorr) 380 * Allow using custom transfer agents directly #2429 (@aleb) 381 * Add `lfs.storage` parameter for overriding LFS storage location #2023 (@bozaro) 382 * lfsapi: enable credential caching by default #2508 (@ttaylorr) 383 * commands/install: teach `--manual` to `git-lfs-install(1)` #2410 (@ttaylorr) 384 385 ### Bugs 386 387 * migrate: fix migrations with subdirectories in '--include' or '--exclude' #2485 (@ttaylorr) 388 * commands/migrate: fix hardlinking issue when different filesystem is mounted at `/tmp` #2566 (@ttaylorr) 389 * commands: make `git lfs migrate` fetch ref updates before migrating #2538 (@ttaylorr) 390 * commands: remove '--above=1mb' default from `git lfs migrate info` #2460 (@ttaylorr) 391 * filepathfilter: fix `HasPrefix()` when no '--include' filters present #2579 (@technoweenie) 392 * git/githistory/log: fix race condition with `git/githistory/log` tests #2495 (@ttaylorr) 393 * git/odb: fix closing object database test #2457 (@ttaylorr) 394 * git/githistory: only update local refs after migrations #2559 (@ttaylorr) 395 * locking: fix unlocking files not removing write flag #2514 (@ttaylorr) 396 * locks: fix unlocking files in a symlinked directory #2505 (@ttaylorr) 397 * commands: teach `git lfs unlock` to ignore status errs in appropriate conditions #2475 (@ttaylorr) 398 * git: expand `GetAttributePaths` check to include non-LFS lockables #2528 (@ttaylorr) 399 * fix multiple `git update-index` invocations #2531 (@larsxschneider) 400 * tools: fix SSH credential cacher expiration #2530 (@ttaylorr) 401 * lfsapi: fix read/write race condition in credential cacher #2493 (@ttaylorr) 402 * lfs: fix cleaning contents larger than 1024 bytes over stdin #2488 (@ttaylorr) 403 * fsck only scans current version of objects #2049 (@TheJare) 404 * progress: fix writing updates to `$GIT_LFS_PROGRESS` #2465 (@ttaylorr) 405 * commands/track: resolve symlinks before comparing attr paths #2463 (@ttaylorr) 406 * test: ensure that empty pointers are empty #2458 (@ttaylorr) 407 * git/githistory/log: prevent 'NaN' showing up in `*PercentageTask` #2455 (@ttaylorr) 408 * tq: teach Batch() API to retry itself after io.EOF's #2516 (@ttaylorr) 409 410 ### Misc 411 412 * script/packagecloud: release LFS on Fedora/26 #2443 #2509 (@rudineirk, @andyneff) 413 * git/githistory: change "Rewriting commits" when not updating refs #2577 (@ttaylorr) 414 * commands: print IP addresses in error logs #2570 (@larsxschneider) 415 * commands: print current time in UTC to error logs #2571 (@larsxschneider) 416 * commands: Disable lock verification when using a standalone custom-tr… #2499 (@aleb) 417 * docs/man: update `git lfs migrate` documentation with EXAMPLES #2580 (@technoweenie) 418 * docs/man: recommend global per-host locking config #2546 (@larsxschneider) 419 * commands: use transfer queue's batch size instead of constant #2529 (@ttaylorr) 420 * add function to invoke Git with disabled LFS filters #2453 (@larsxschneider) 421 * config: warn on unsafe keys in `.lfsconfig` #2502 (@ttaylorr) 422 * glide: remove unused dependencies #2501 (@ttaylorr) 423 * script/build: pass '-{ld,gc}flags' to compiler, if given #2462 (@ttaylorr) 424 * spec: mention that an empty file is its own LFS pointer #2449 (@mathstuf) 425 * Update to latest version of github.com/pkg/errors #2426 (@ssgelm) 426 * Update gitignore to add some temp files that get created when building debs #2425 (@ssgelm) 427 * lfs: indent contents of `git lfs install`, `update` #2392 (@ttaylorr) 428 * tq: increase default `lfs.concurrenttransfers` to 8 #2506 (@ttaylorr) 429 430 ## 2.2.1 (10 July, 2017) 431 432 ### Bugs 433 434 * git lfs status --json only includes lfs files #2374 (@asottile) 435 * git/odb: remove temporary files after migration #2388 (@ttaylorr) 436 * git/githistory: fix hanging on empty set of commits #2383 (@ttaylorr) 437 * migrate: don't checkout HEAD on bare repositories #2389 (@ttaylorr) 438 * git/odb: prevent cross-volume link error when saving objects #2382 (@ttaylorr) 439 * commands: only pass --jobs to `git clone` if set #2369 (@technoweenie) 440 441 ### Misc 442 443 * lfs: trace hook install, uninstall, upgrade #2393 (@ttaylorr) 444 * vendor: remove github.com/cheggaaa/pb #2386 (@ttaylorr) 445 * Use FormatBytes from git-lfs/tools/humanize instead of cheggaaa/pb #2377 (@ssgelm) 446 447 448 ## 2.2.0 (27 June, 2017) 449 450 Git LFS v2.2.0 includes bug fixes, minor features, and a brand new `migrate` 451 command. The `migrate` command rewrites commits, converting large files from 452 Git blobs to LFS objects. The most common use case will fix a git push rejected 453 for having large blobs: 454 455 ``` 456 $ git push origin master 457 # ... 458 remote: error: file a.psd is 1.2 gb; this exceeds github's file size limit of 100.00 mb 459 to github.com:ttaylorr/demo.git 460 ! [remote rejected] master -> master (pre-receive hook declined) 461 error: failed to push some refs to 'git@github.com:ttaylorr/demo.git' 462 463 $ git lfs migrate info 464 *.psd 1.2 GB 27/27 files(s) 100% 465 466 $ git lfs migrate import --include="*.psd" 467 migrate: Sorting commits: ..., done 468 migrate: Rewriting commits: 100% (810/810), done 469 master f18bb746d44e8ea5065fc779bb1acdf3cdae7ed8 -> 35b0fe0a7bf3ae6952ec9584895a7fb6ebcd498b 470 migrate: Updating refs: ..., done 471 472 $ git push origin 473 Git LFS: (1 of 1 files) 1.2 GB / 1.2 GB 474 # ... 475 To github.com:ttaylorr/demo.git 476 * [new branch] master -> master 477 ``` 478 479 The `migrate` command has detailed options described in the `git-lfs-migrate(1)` 480 man page. Keep in mind that this is the first pass at such a command, so we 481 expect there to be bugs and performance issues (especially on long git histories). 482 Future updates to the command will be focused on improvements to allow full 483 LFS transitions on large repositories. 484 485 ### Features 486 487 * commands: add git-lfs-migrate(1) 'import' subcommand #2353 (@ttaylorr) 488 * commands: add git-lfs-migrate(1) 'info' subcommand #2313 (@ttaylorr) 489 * Implement status --json #2311 (@asottile) 490 * commands/uploader: allow incomplete pushes #2199 (@ttaylorr) 491 492 ### Bugs 493 494 * Retry on timeout or temporary errors #2312 (@jakub-m) 495 * commands/uploader: don't verify locks if verification is disabled #2278 (@ttaylorr) 496 * Fix tools.TranslateCygwinPath() on MSYS #2277 (@raleksandar) 497 * commands/clone: add new flags since Git 2.9 #2251, #2252 (@ttaylorr) 498 * Make pull return non-zero error code when some downloads failed #2237 (@seth2810) 499 * tq/basic_download: guard against nil HTTP response #2227 (@ttaylorr) 500 * Bugfix: cannot push to scp style URL #2198 (@jiangxin) 501 * support lfs.<url>.* values where url does not include .git #2192 (@technoweenie) 502 * commands: fix logged error not interpolating format qualifiers #2228 (@ttaylorr) 503 * commands/help: print helptext to stdout for consistency with Git #2210 (@ttaylorr) 504 505 ### Misc 506 507 * Minor cleanups in help index #2248 (@dpursehouse) 508 * Add git-lfs-lock and git-lfs-unlock to help index #2232 (@dpursehouse) 509 * packagecloud: add Debian 9 entry to formatted list #2211 (@ttaylorr) 510 * Update Xenial is to use stretch packages #2212 (@andyneff) 511 512 ## 2.1.1 (19 May, 2017) 513 514 Git LFS v2.1.1 ships with bug fixes and a security patch fixing a remote code 515 execution vulnerability exploitable by setting a SSH remote via your 516 repository's `.lfsconfig` to contain the string "-oProxyCommand". This 517 vulnerability is only exploitable if an attacker has write access to your 518 repository, or you clone a repository with a `.lfsconfig` file containing that 519 string. 520 521 ### Bugs 522 523 * Make pull return non-zero error code when some downloads failed #2245 (@seth2810, @technoweenie) 524 * lfsapi: support cross-scheme redirection #2243 (@ttaylorr) 525 * sanitize ssh options parsed from ssh:// url #2242 (@technoweenie) 526 * filepathfilter: interpret as .gitignore syntax #2238 (@technoweenie) 527 * tq/basic_download: guard against nil HTTP response #2229 (@ttaylorr) 528 * commands: fix logged error not interpolating format qualifiers #2230 (@ttaylorr) 529 530 ### Misc 531 532 * release: backport Debian 9-related changes #2244 (@ssgelm, @andyneff, @ttaylorr) 533 * Add git-lfs-lock and git-lfs-unlock to help index #2240 (@dpursehouse) 534 * config: allow multiple environments when calling config.Unmarshal #2224 (@ttaylorr) 535 536 ## 2.1.0 (28 April, 2017) 537 538 ### Features 539 540 * commands/track: teach --no-modify-attrs #2175 (@ttaylorr) 541 * commands/status: add blob info to each entry #2070 (@ttaylorr) 542 * lfsapi: improve HTTP request/response stats #2184 (@technoweenie) 543 * all: support URL-style configuration lookups (@ttaylorr) 544 * commands: support URL-style lookups for `lfs.{url}.locksverify` #2162 (@ttaylorr) 545 * lfsapi: support URL-style lookups for `lfs.{url}.access` #2161 (@ttaylorr) 546 * lfsapi/certs: use `*config.URLConfig` to do per-host config lookup #2160 (@ttaylorr) 547 * lfsapi: support for http.<url>.extraHeader #2159 (@ttaylorr) 548 * config: add prefix to URLConfig type #2158 (@ttaylorr) 549 * config: remove dependency on lfsapi package #2156 (@ttaylorr) 550 * config: support multi-value lookup on URLConfig #2154 (@ttaylorr) 551 * lfsapi: initial httpconfig type #1912 (@technoweenie, @ttaylorr) 552 * lfsapi,tq: relative expiration support #2130 (@ttaylorr) 553 554 ### Bugs 555 556 * commands: include error in `LoggedError()` #2179 (@ttaylorr) 557 * commands: cross-platform log formatting to files #2178 (@ttaylorr) 558 * locks: cross-platform path normalization #2139 (@ttaylorr) 559 * commands,locking: don't disable locking for auth errors during verify #2110 (@ttaylorr) 560 * commands/status: show partially staged files twice #2067 (@ttaylorr) 561 562 ### Misc 563 564 * all: build on Go 1.8.1 #2145 (@ttaylorr) 565 * Polish custom-transfers.md #2171 (@sprohaska) 566 * commands/push: Fix typo in comment #2170 (@sprohaska) 567 * config: support multi-valued config entries #2152 (@ttaylorr) 568 * smudge: use localstorage temp directory, not system #2140 (@ttaylorr) 569 * locking: send locks limit to server #2107 (@ttaylorr) 570 * lfs: extract `DiffIndexScanner` #2035 (@ttaylorr) 571 * status: use DiffIndexScanner to populate results #2042 (@ttaylorr) 572 573 ## 2.0.2 (29 March, 2017) 574 575 ### Features 576 577 * ssh auth and credential helper caching #2094 (@ttaylorr) 578 * commands,tq: specialized logging for missing/corrupt objects #2085 (@ttaylorr) 579 * commands/clone: install repo-level hooks after `git lfs clone` #2074 580 * (@ttaylorr) 581 * debian: Support building on armhf and arm64 #2089 (@p12tic) 582 583 ### Bugs 584 585 * commands,locking: don't disable locking for auth errors during verify #2111 586 * (@ttaylorr) 587 * commands: show real error while cleaning #2096 (@ttaylorr) 588 * lfsapi/auth: optionally prepend an empty scheme to Git remote URLs #2092 589 * (@ttaylorr) 590 * tq/verify: authenticate verify requests if required #2084 (@ttaylorr) 591 * commands/{,un}track: correctly escape '#' and ' ' characters #2079 (@ttaylorr) 592 * tq: use initialized lfsapi.Client instances in transfer adapters #2048 593 * (@ttaylorr) 594 595 ### Misc 596 597 * locking: send locks limit to server #2109 (@ttaylorr) 598 * docs: update configuration documentation #2097 #2019 #2102 (@terrorobe) 599 * docs: update locking API documentation #2099 #2101 (@dpursehouse) 600 * fixed table markdown in README.md #2095 (@ZaninAndrea) 601 * remove the the duplicate work #2098 (@grimreaper) 602 603 ## 2.0.1 (6 March, 2017) 604 605 ### Misc 606 607 * tq: fallback to `_links` if present #2007 (@ttaylorr) 608 609 ## 2.0.0 (1 March, 2017) 610 611 Git LFS v2.0.0 brings a number of important bug fixes, some new features, and 612 a lot of internal refactoring. It also completely removes old APIs that were 613 deprecated in Git LFS v0.6. 614 615 ### Locking 616 617 File Locking is a brand new feature that lets teams communicate when they are 618 working on files that are difficult to merge. Users are not able to edit or push 619 changes to any files that are locked by other users. While the feature has been 620 in discussion for a year, we are releasing a basic Locking implementation to 621 solicit feedback from the community. 622 623 ### Transfer Queue 624 625 LFS 2.0 introduces a new Git Scanner, which walks a range of Git commits looking 626 for LFS objects to transfer. The Git Scanner is now asynchronous, initiating 627 large uploads or downloads in the Transfer Queue immediately once an LFS object 628 is found. Previously, the Transfer Queue waited until all of the Git commits 629 have been scanned before initiating the transfer. The Transfer Queue also 630 automatically retries failed uploads and downloads more often. 631 632 ### Deprecations 633 634 Git LFS v2.0.0 also drops support for the legacy API in v0.5.0. If you're still 635 using LFS servers on the old API, you'll have to stick to v1.5.6. 636 637 ### Features 638 639 * Mid-stage locking support #1769 (@sinbad) 640 * Define lockable files, make read-only in working copy #1870 (@sinbad) 641 * Check that files are not uncommitted before unlock #1896 (@sinbad) 642 * Fix `lfs unlock --force` on a missing file #1927 (@technoweenie) 643 * locking: teach pre-push hook to check for locks #1815 (@ttaylorr) 644 * locking: add `--json` flag #1814 (@ttaylorr) 645 * Implement local lock cache, support querying it #1760 (@sinbad) 646 * support for client certificates pt 2 #1893 (@technoweenie) 647 * Fix clash between progress meter and credential helper #1886 (@technoweenie) 648 * Teach uninstall cmd about --local and --system #1887 (@technoweenie) 649 * Add `--skip-repo` option to `git lfs install` & use in tests #1868 (@sinbad) 650 * commands: convert push, pre-push to use async gitscanner #1812 (@ttaylorr) 651 * tq: prioritize transferring retries before new items #1758 (@ttaylorr) 652 653 ### Bugs 654 655 * ensure you're in the correct directory when installing #1793 (@technoweenie) 656 * locking: make API requests relative to repository, not root #1818 (@ttaylorr) 657 * Teach 'track' about CRLF #1914 (@technoweenie) 658 * Teach 'track' how to handle empty lines in .gitattributes #1921 (@technoweenie) 659 * Closing stdout pipe before function return #1861 (@monitorjbl) 660 * Custom transfer terminate #1847 (@sinbad) 661 * Fix Install in root problems #1727 (@technoweenie) 662 * cat-file batch: read all of the bytes #1680 (@technoweenie) 663 * Fixed file paths on cygwin. #1820, #1965 (@creste, @ttaylorr) 664 * tq: decrement uploaded bytes in basic_upload before retry #1958 (@ttaylorr) 665 * progress: fix never reading bytes with sufficiently small files #1955 (@ttaylorr) 666 * tools: fix truncating string fields between balanced quotes in GIT_SSH_COMMAND #1962 (@ttaylorr) 667 * commands/smudge: treat empty pointers as empty files #1954 (@ttaylorr) 668 669 ### Misc 670 671 * all: build using Go 1.8 #1952 (@ttaylorr) 672 * Embed the version information into the Windows executable #1689 (@sschuberth) 673 * Add more meta-data to the Windows installer executable #1752 (@sschuberth) 674 * docs/api: object size must be positive #1779 (@ttaylorr) 675 * build: omit DWARF tables by default #1937 (@ttaylorr) 676 * Add test to prove set operator [] works in filter matching #1768 (@sinbad) 677 * test: add ntlm integration test #1840 (@technoweenie) 678 * lfs/tq: completely remove legacy support #1686 (@ttaylorr) 679 * remove deprecated features #1679 (@technoweenie) 680 * remove legacy api support #1629 (@technoweenie) 681 682 ## 1.5.6 (16 February, 2017) 683 684 ## Bugs 685 686 * Spool malformed pointers to avoid deadlock #1932 (@ttaylorr) 687 688 ## 1.5.5 (12 January, 2017) 689 690 ### Bugs 691 692 * lfs: only buffer first 1k when creating a CleanPointerError #1856 (@ttaylorr) 693 694 ## 1.5.4 (27 December, 2016) 695 696 ### Bugs 697 698 * progress: guard negative padding width, panic in `strings.Repeat` #1807 (@ttaylorr) 699 * commands,lfs: handle malformed pointers #1805 (@ttaylorr) 700 701 ### Misc 702 703 * script/packagecloud: release LFS on fedora/25 #1798 (@ttaylorr) 704 * backport filepathfilter to v1.5.x #1782 (@technoweenie) 705 706 ## 1.5.3 (5 December, 2016) 707 708 ### Bugs 709 710 * Support LFS installations at filesystem root #1732 (@technoweenie) 711 * git: parse filter process header values containing '=' properly #1733 (@larsxschneider) 712 * Fix SSH endpoint parsing #1738 (@technoweenie) 713 714 ### Misc 715 716 * build: release on Go 1.7.4 #1741 (@ttaylorr) 717 718 ## 1.5.2 (22 November, 2016) 719 720 ### Features 721 722 * Release LFS on Fedora 24 #1685 (@technoweenie) 723 724 ### Bugs 725 726 * filter-process: fix reading 1024 byte files #1708 (@ttaylorr) 727 * Support long paths on Windows #1705 (@technoweenie) 728 729 ### Misc 730 731 * filter-process: exit with error if we detect an unknown command from Git #1707 (@ttaylorr) 732 * vendor: remove contentaddressable lib #1706 (@technoweenie) 733 734 ## 1.5.1 (18 November, 2016) 735 736 ### Bugs 737 738 * cat-file --batch parser errors on non-lfs git blobs #1680 (@technoweenie) 739 740 ## 1.5.0 (17 November, 2016) 741 742 ### Features 743 744 * Filter Protocol Support #1617 (@ttaylorr, @larsxschneider) 745 * Fast directory walk #1616 (@sinbad) 746 * Allow usage of proxies even when contacting localhost #1605 (@chalstrick) 747 748 ### Bugs 749 750 * start reading off the Watch() channel before sending any input #1671 (@technoweenie) 751 * wait for remote ref commands to exit before returning #1656 (@jjgod, @technoweenie) 752 753 ### Misc 754 755 * rewrite new catfilebatch implementation for upcoming gitscanner pkg #1650 (@technoweenie) 756 * refactor testutils.FileInput so it's a little more clear #1666 (@technoweenie) 757 * Update the lfs track docs #1642 (@technoweenie) 758 * Pre push tracing #1638 (@technoweenie) 759 * Remove `AllGitConfig()` #1634 (@technoweenie) 760 * README: set minimal required Git version to 1.8.5 #1636 (@larsxschneider) 761 * 'smudge --info' is deprecated in favor of 'ls-files' #1631 (@technoweenie) 762 * travis-ci: test GitLFS with ancient Git version #1626 (@larsxschneider) 763 764 ## 1.4.4 (24 October, 2016) 765 766 ### Bugs 767 768 * transfer: more descriptive "expired at" errors #1603 (@ttaylorr) 769 * commands,lfs/tq: Only send unique OIDs to the Transfer Queue #1600 (@ttaylorr) 770 * Expose the result message in case of an SSH authentication error #1599 (@sschuberth) 771 772 ### Misc 773 774 * AppVeyor: Do not build branches with open pull requests #1594 (@sschuberth) 775 * Update .mailmap #1593 (@dpursehouse) 776 777 ## 1.4.3 (17 October, 2016) 778 779 ### Bugs 780 781 * lfs/tq: use extra arguments given to tracerx.Printf #1583 (@ttaylorr) 782 * api: correctly print legacy API warning to Stderr #1582 (@ttaylorr) 783 784 ### Misc 785 786 * Test storage retries #1585 (@ttaylorr) 787 * Test legacy check retries behavior #1584 (@ttaylorr) 788 * docs: Fix a link to the legacy API #1579 (@sschuberth) 789 * Add a .mailmap file #1577 (@sschuberth) 790 * Add a large wizard image to the Windows installer #1575 (@sschuberth) 791 * Appveyor badge #1574 (@ttaylorr) 792 793 ## 1.4.2 (10 October, 2016) 794 795 v1.4.2 brings a number of bug fixes and usability improvements to LFS. This 796 release also adds support for multiple retries within the transfer queue, making 797 transfers much more reliable. To enable this feature, see the documentation for 798 `lfs.transfer.maxretries` in `git-lfs-config(5)`. 799 800 We'd also like to extend a special thank-you to @sschuberth who undertook the 801 process of making LFS's test run on Windows through AppVeyor. Now all pull 802 requests run tests on macOS, Linux, and Windows. 803 804 ### Features 805 806 * lfs: warn on usage of the legacy API #1564 (@ttaylorr) 807 * use filepath.Clean() when comparing filenames to include/exclude patterns #1565 (@technoweenie) 808 * lfs/transfer_queue: support multiple retries per object #1505, #1528, #1535, #1545 (@ttaylorr) 809 * Automatically upgrade old filters instead of requiring —force #1497 (@sinbad) 810 * Allow lfs.pushurl in .lfsconfig #1489 (@technoweenie) 811 812 ### Bugs 813 814 * Use "sha256sum" on Windows #1566 (@sschuberth) 815 * git: ignore non-root wildcards #1563 (@ttaylorr) 816 * Teach status to recognize multiple files with identical contents #1550 (@ttaylorr) 817 * Status initial commit #1540 (@sinbad) 818 * Make path comparison robust against Windows short / long path issues #1523 (@sschuberth) 819 * Allow fetch to run without a remote configured #1507 (@sschuberth) 820 821 ### Misc 822 823 * travis: run tests on Go 1.7.1 #1568 (@ttaylorr) 824 * Enable running tests on AppVeyor CI #1567 (@sschuberth) 825 * Travis: Only install git if not installed yet #1557 (@sschuberth) 826 * Windows test framework fixes #1522 (@sschuberth) 827 * Simplify getting the absolute Git root directory #1518 (@sschuberth) 828 * Add icons to the Windows installer #1504 (@sschuberth) 829 * docs/man: reference git-lfs-pointer(1) in clean documentation #1503 (@ttaylorr) 830 * Make AppVeyor CI for Windows work again #1506 (@sschuberth) 831 * commands: try out RegisterCommand() #1495 (@technoweenie) 832 833 ## 1.4.1 (26 August, 2016) 834 835 ### Features 836 837 * retry if file download failed #1454 (@larsxschneider) 838 * Support wrapped clone in current directory #1478 (@ttaylorr) 839 840 ### Misc 841 842 * Test `RetriableReader` #1482 (@ttaylorr) 843 844 ## 1.4.0 (19 August, 2016) 845 846 ### Features 847 848 * Install LFS at the system level when packaged #1460 (@javabrett) 849 * Fetch remote urls #1451 (@technoweenie) 850 * add object Authenticated property #1452 (@technoweenie) 851 * add support for `url.*.insteadof` in git config #1117, #1443 (@artagnon, @technoweenie) 852 853 ### Bugs 854 855 * fix --include bug when multiple files have same lfs content #1458 (@technoweenie) 856 * check the git version is ok in some key commands #1461 (@technoweenie) 857 * fix duplicate error reporting #1445, #1453 (@dpursehouse, @technoweenie) 858 * transfer/custom: encode "event" as lowercase #1441 (@ttaylorr) 859 860 ### Misc 861 862 * docs/man: note GIT_LFS_PROGRESS #1469 (@ttaylorr) 863 * Reword the description of HTTP 509 status #1467 (@dpursehouse) 864 * Update fetch include/exclude docs for pattern matching #1455 (@ralfthewise) 865 * config-next: API changes to the `config` package #1425 (@ttaylorr) 866 * errors-next: Contextualize error messages #1463 (@ttaylorr, @technoweenie) 867 * scope commands to not leak instances of themselves #1434 (@technoweenie) 868 * Transfer manifest #1430 (@technoweenie) 869 870 ## 1.3.1 (2 August 2016) 871 872 ### Features 873 874 * lfs/hook: teach `lfs.Hook` about `core.hooksPath` #1409 (@ttaylorr) 875 876 ### Bugs 877 878 * distinguish between empty include/exclude paths #1411 (@technoweenie) 879 * Fix sslCAInfo config lookup when host in config doesn't have a trailing slash #1404 (@dakotahawkins) 880 881 ### Misc 882 883 * Use commands.Config instead of config.Config #1390 (@technoweenie) 884 885 ## 1.3.0 (21 July 2016) 886 887 ### Features 888 889 * use proxy from git config #1173, #1358 (@jonmagic, @LizzHale, @technoweenie) 890 * Enhanced upload/download of LFS content: #1265 #1279 #1297 #1303 #1367 (@sinbad) 891 * Resumable downloads using HTTP range headers 892 * Resumable uploads using [tus.io protocol](http://tus.io) 893 * Pluggable [custom transfer adapters](https://github.com/git-lfs/git-lfs/blob/master/docs/custom-transfers.md) 894 * In git 2.9+, run "git lfs pull" in submodules after "git lfs clone" #1373 (@sinbad) 895 * cmd,doc,test: teach `git lfs track --{no-touch,verbose,dry-run}` #1344 (@ttaylorr) 896 * ⏳ Retry transfers with expired actions #1350 (@ttaylorr) 897 * Safe track patterns #1346 (@ttaylorr) 898 * Add checkout --unstaged flag #1262 (@orivej) 899 * cmd/clone: add include/exclude via flags and config #1321 (@ttaylorr) 900 * Improve progress reporting when files skipped #1296 (@sinbad) 901 * Experimental file locking commands #1236, #1259, #1256, #1386 (@ttaylorr) 902 * Implement support for GIT_SSH_COMMAND #1260 (@pdf) 903 * Recognize include/exclude filters from config #1257 (@ttaylorr) 904 905 ### Bugs 906 907 * Fix bug in Windows installer under Win32. #1200 (@teo-tsirpanis) 908 * Updated request.GetAuthType to handle multi-value auth headers #1379 (@VladimirKhvostov) 909 * Windows fixes #1374 (@sinbad) 910 * Handle artifactory responses #1371 (@ttaylorr) 911 * use `git rev-list --stdin` instead of passing each remote ref #1359 (@technoweenie) 912 * docs/man: move "logs" subcommands from OPTIONS to COMMANDS #1335 (@ttaylorr) 913 * test/zero-len: update test for git v2.9.1 #1369 (@ttaylorr) 914 * Unbreak building httputil on OpenBSD #1360 (@jasperla) 915 * WIP transferqueue race fix #1255 (@technoweenie) 916 * Safety check to `comands.requireStdin` #1349 (@ttaylorr) 917 * Removed CentOS 5 from dockers. Fixed #1295. #1298 (@javabrett) 918 * Fix 'git lfs fetch' with a sha1 ref #1323 (@omonnier) 919 * Ignore HEAD ref when fetching with --all #1310 (@ttaylorr) 920 * Return a fully remote ref to reduce chances of ref clashes #1248 (@technoweenie) 921 * Fix reporting of `git update-index` errors in `git lfs checkout` and `git lfs pull` #1400 (@technoweenie) 922 923 ### Misc 924 925 * Added Linux Mint Sarah to package cloud script #1384 (@andyneff) 926 * travis-ci: require successful tests against upcoming Git core release #1372 (@larsxschneider) 927 * travis-ci: add a build job to test against upcoming versions of Git #1361 (@larsxschneider) 928 * Create Makefiles for building with gccgo #1222 (@zeldin) 929 * README: add @ttaylorr to core team #1332 (@ttaylorr) 930 * Enforced a minimum gem version of 1.0.4 for packagecloud-ruby #1292 (@javabrett) 931 * I think this should be "Once installed" and not "One installed", but … #1305 (@GabLeRoux) 932 * script/test: propagate extra args to go test #1324 (@omonnier) 933 * Add `lfs.basictransfersonly` option to disable non-basic transfer adapters #1299 (@sinbad) 934 * Debian build vendor test excludes #1291 (@javabrett) 935 * gitignore: ignore lfstest-\* files #1271 (@ttaylorr) 936 * Disable gojsonschema test, causes failures when firewalls block it #1274 (@sinbad) 937 * test: use noop credential helper for auth tests #1267 (@ttaylorr) 938 * get git tests passing when run outside of repository #1229 (@technoweenie) 939 * Package refactor no.1 #1226 (@sinbad) 940 * vendor: vendor dependencies in vendor/ using Glide #1243 (@ttaylorr) 941 942 ## 1.2.1 (2 June 2016) 943 944 ### Features 945 946 * Add missing config details to `env` command #1217 (@sinbad) 947 * Allow smudge filter to return 0 on download failure #1213 (@sinbad) 948 * Add `git lfs update --manual` option & promote it on hook install fail #1182 (@sinbad) 949 * Pass `git lfs clone` flags through to `git clone` correctly, respect some options #1160 (@sinbad) 950 951 ### Bugs 952 953 * Clean trailing `/` from include/exclude paths #1278 (@ttaylorr) 954 * Fix problems with user prompts in `git lfs clone` #1185 (@sinbad) 955 * Fix failure to return non-zero exit code when lfs install/update fails to install hooks #1178 (@sinbad) 956 * Fix missing man page #1149 (@javabrett) 957 * fix concurrent map read and map write #1179 (@technoweenie) 958 959 ### Misc 960 961 * Allow additional fields on request & response schema #1276 (@sinbad) 962 * Fix installer error on win32. #1198 (@teo-tsirpanis) 963 * Applied same -ldflags -X name value -> name=value fix #1193 (@javabrett) 964 * add instructions to install from MacPorts #1186 (@skymoo) 965 * Add xenial repo #1170 (@graingert) 966 967 ## 1.2.0 (14 April 2016) 968 969 ### Features 970 971 * netrc support #715 (@rubyist) 972 * `git lfs clone` command #988 (@sinbad) 973 * Support self-signed certs #1067 (@sinbad) 974 * Support sslverify option for specific hosts #1081 (@sinbad) 975 * Stop transferring duplicate objects on major push or fetch operations on multiple refs. #1128 (@technoweenie) 976 * Touch existing git tracked files when tracked in LFS so they are flagged as modified #1104 (@sinbad) 977 * Support for git reference clones #1007 (@jlehtnie) 978 979 ### Bugs 980 981 * Fix clean/smudge filter string for files starting with - #1083 (@epriestley) 982 * Fix silent failure to push LFS objects when ref matches a filename in the working copy #1096 (@epriestley) 983 * Fix problems with using LFS in symlinked folders #818 (@sinbad) 984 * Fix git lfs push silently misbehaving on ambiguous refs; fail like git push instead #1118 (@sinbad) 985 * Whitelist `lfs.*.access` config in local ~/.lfsconfig #1122 (@rjbell4) 986 * Only write the encoded pointer information to Stdout #1105 (@sschuberth) 987 * Use hardcoded auth from remote or lfs config when accessing the storage api #1136 (@technoweenie, @jonmagic) 988 * SSH should be called more strictly with command as one argument #1134 (@sinbad) 989 990 ## 1.1.2 (1 March, 2016) 991 992 * Fix Base64 issues with `?` #989 (@technoweenie) 993 * Fix zombie git proc issue #1012 (@rlaakkol) 994 * Fix problems with files containing unicode characters #1016 (@technoweenie) 995 * Fix panic in `git cat-file` parser #1006 (@technoweenie) 996 * Display error messages in non-fatal errors #1028 #1039 #1042 (@technoweenie) 997 * Fix concurrent map access in progress meter (@technoweenie) 998 999 ## 1.1.1 (4 February, 2016) 1000 1001 ### Features 1002 1003 * Add copy-on-write support for Linux BTRFS filesystem #952 (@bozaro) 1004 * convert `git://` remotes to LFS servers automatically #964 (@technoweenie) 1005 * Fix `git lfs track` handling of absolute paths. #975 (@technoweenie) 1006 * Allow tunable http client timeouts #977 (@technoweenie) 1007 1008 ### Bugs 1009 1010 * Suppress git config warnings for non-LFS keys #861 (@technoweenie) 1011 * Fix fallthrough when `git-lfs-authenticate` returns an error #909 (@sinbad) 1012 * Fix progress bar issue #883 (@pokehanai) 1013 * Support `remote.name.pushurl` config #949 (@sinbad) 1014 * Fix handling of `GIT_DIR` and `GIT_WORK_TREE` #963, #971 (@technoweenie) 1015 * Fix handling of zero length files #966 (@nathanhi) 1016 * Guard against invalid remotes passed to `push` and `pre-push` #974 (@technoweenie) 1017 * Fix race condition in `git lfs pull` #972 (@technoweenie) 1018 1019 ### Extra 1020 1021 * Add server API test tool #868 (@sinbad) 1022 * Redo windows installer with innosetup #875 (@strich) 1023 * Pre-built packages are built with Go v1.5.3 1024 1025 ## 1.1.0 (18 November, 2015) 1026 1027 * NTLM auth support #820 (@WillHipschman, @technoweenie) 1028 * Add `prune` command #742 (@sinbad) 1029 * Use .lfsconfig instead of .gitconfig #837 (@technoweenie) 1030 * Rename "init" command #838 (@technoweenie) 1031 * Raise error if credentials are needed #842 (@technoweenie) 1032 * Support git repos in symlinked directories #818 (@sinbad, @difro, @jiangxin) 1033 * Fix "git lfs env" to show correct SSH remote info #828 (@jiangxin) 1034 1035 ## 1.0.2 (28 October, 2015) 1036 1037 * Fix issue with 'git lfs smudge' and the batch API. #795 (@technoweenie) 1038 * Fix race condition in the git scanning code. #801 (@technoweenie) 1039 1040 ## 1.0.1 (23 October, 2015) 1041 1042 * Downcase git config keys (prevents Auth loop) #690 (@WillHipschman) 1043 * Show more info for unexpected http responses #710 (@rubyist) 1044 * Use separate stdout/stderr buffers for `git-lfs-authenticate` #718 (@bozaro) 1045 * Use LoggedError instead of Panic if update-index fails in checkout #735 (@sinbad) 1046 * `smudge` command exits with non-zero if the download fails #732 (@rubyist) 1047 * Use `git rev-parse` to find the git working dir #692 (@sinbad) 1048 * Improved default remote behaviour & validation for fetch/pull #713 (@sinbad) 1049 * Make fetch return error code when 1+ downloads failed #734 (@sinbad) 1050 * Improve lfs.InRepo() detection in `init`/`update` #756 (@technoweenie) 1051 * Teach smudge to use the batch api #711 (@rubyist) 1052 * Fix not setting global attribute when needed to b/c of local state #765 (@sinbad) 1053 * Fix clone fail when fetch is excluded globally #770 (@sinbad) 1054 * Fix for partial downloads problem #763 (@technoweenie) 1055 * Get integration tests passing on Windows #771 (@sinbad) 1056 1057 ### Security 1058 1059 * Whitelist the valid keys read from .gitconfig #760 (@technoweenie) 1060 1061 This prevents unsafe git configuration values from being used by Git LFS. 1062 1063 ## v1.0 (1 October, 2015) 1064 1065 * Manual reference is integrated into the "help" options #665 @sinbad 1066 * Fix `ls-files` when run from an empty repository #668 @Aorjoa 1067 * Support listing duplicate files in `ls-files` #681 @Aorjoa @technoweenie 1068 * `update` and `init` commands can install the pre-push hook in bare repositories #671 @technoweenie 1069 * Add `GIT_LFS_SKIP_SMUDGE` and `init --skip-smudge` #679 @technoweenie 1070 1071 ## v0.6.0 (10 September, 2015) 1072 1073 This is the first release that uses the new Batch API by default, while still 1074 falling back to the Legacy API automatically. Also, new fetch/checkout/push 1075 commands have been added. 1076 1077 Run `git lfs update` in any local repositories to make sure all config settings 1078 are updated. 1079 1080 ### Fetch 1081 1082 * Rename old `git lfs fetch` command to `git lfs pull`. #527 (@sinbad) 1083 * Add `git lfs checkout` #527 #543 #551 #566 (@sinbad) 1084 * Add `git lfs fetch` for _just_ downloading objects. #527 (@sinbad) 1085 * Add `remote` arg, and default to tracking remote instead of "origin". #583 (@sinbad) 1086 * Support fetching multiple refs #542 (@sinbad) 1087 * Add `--include` and `--exclude` flag for `git lfs fetch` #573 (@sinbad) 1088 * Add `--recent` flag for downloading recent files outside of the current 1089 checkout. #610 (@sinbad) 1090 * Add `--all` option for download all objects from the server. #633 (@sinbad) 1091 * Fix error handling while `git update-index` is running. #570 (@rubyist) 1092 1093 See [git-lfs-fetch(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-fetch.1.ronn), 1094 [git-lfs-checkout(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-checkout.1.ronn), 1095 and [git-lfs-pull(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-pull.1.ronn) 1096 for details. 1097 1098 ### Push 1099 1100 * Support pushing multiple branches in the pre-push hook. #635 (@sinbad) 1101 * Fix pushing objects from a branch that's not HEAD. #608 (@sinbad) 1102 * Check server for objects before failing push because local is missing. #581 (@sinbad) 1103 * Filter out commits from remote refs when pushing. #578 (@billygor) 1104 * Support pushing all objects to the server, regardless of the remote ref. #646 (@technoweenie) 1105 * Fix case where pre-push git hook exits with 0. #582 (@sinbad) 1106 1107 See [git-lfs-push(1)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-push.1.ronn) for details. 1108 1109 ### API Clients 1110 1111 * Fix some race conditions in the Batch API client. #577 #637 (@sinbad, @rubyist) 1112 * Support retries in the Batch API client. #595 (@rubyist) 1113 * Fix hanging batch client in certain error conditions. #594 (@rubyist) 1114 * Treat 401 responses as errors in the Legacy API client. #634 (@rubyist) 1115 * Fix bug in the Legacy API client when the object already exists on the server. #572 (@billygor) 1116 1117 ### Credentials 1118 1119 * Fix how git credentials are checked in certain edge cases. #611 #650 #652 (@technoweenie) 1120 * Send URI user to git credentials. #626 (@sinbad) 1121 * Support git credentials with useHttpPath enabled. #554 (@clareliguori) 1122 1123 ### Installation 1124 1125 * Docker images and scripts for building and testing linux packages. #511 #526 #555 #603 (@andyneff, @ssgelm) 1126 * Create Windows GUI installer. #642 (@technoweenie) 1127 * Binary releases use Go 1.5, which includes fix for Authorization when the 1128 request URL includes just the username. [golang/go#11399](https://github.com/golang/go/issues/11399) 1129 1130 ### Misc 1131 1132 * Documented Git config values used by Git LFS in [git-lfs-config(5)](https://github.com/git-lfs/git-lfs/blob/v0.6.0/docs/man/git-lfs-config.5.ronn). #610 (@sinbad) 1133 * Experimental support for Git worktrees (in Git 2.5+) #546 (@sinbad) 1134 * Experimental extension support. #486 (@ryansimmen) 1135 1136 ## v0.5.4 (30 July, 2015) 1137 1138 * Ensure `git lfs uninit` cleans your git config thoroughly. #530 (@technoweenie) 1139 * Fix issue with asking `git-credentials` for auth details after getting them 1140 from the SSH command. #534 (@technoweenie) 1141 1142 ## v0.5.3 (23 July, 2015) 1143 1144 * `git lfs fetch` bugs #429 (@rubyist) 1145 * Push can crash on 32 bit architectures #450 (@rubyist) 1146 * Improved SSH support #404, #464 (@sinbad, @technoweenie) 1147 * Support 307 redirects with relative url #442 (@sinbad) 1148 * Fix `init` issues when upgrading #446 #451 #452 #465 (@technoweenie, @rubyist) 1149 * Support chunked Transfer-Encoding #386 (@ryansimmen) 1150 * Fix issue with pushing deleted objects #461 (@technoweenie) 1151 * Teach `git lfs push` how to send specific objects #449 (@larsxschneider) 1152 * Update error message when attempting to push objects that don't exist in `.git/lfs/objects` #447 (@technoweenie) 1153 * Fix bug in HTTP client when response body is nil #472 #488 (@rubyist, @technoweenie) 1154 * `-crlf` flag in gitattributes is deprecated #475 (@technoweenie) 1155 * Improvements to the CentOS and Debian build and package scripts (@andyneff, @ssgelm) 1156 1157 ## v0.5.2 (19 June, 2015) 1158 1159 * Add `git lfs fetch` command for downloading objects. #285 (@rubyist) 1160 * Fix `git lfs track` issues when run outside of a git repository #312, #323 (@michael-k, @Aorjoa) 1161 * Fix `git lfs track` for paths with spaces in them #327 (@technoweenie) 1162 * Fix `git lfs track` by writing relative paths to .gitattributes #356 (@michael-k) 1163 * Fix `git lfs untrack` so it doesn't remove entries incorrectly from .gitattributes #398 (@michael-k) 1164 * Fix `git lfs clean` bug with zero length files #346 (@technoweenie) 1165 * Add `git lfs fsck` #373 (@zeroshirts, @michael-k) 1166 * The Git pre-push warns if Git LFS is not installed #339 (@rubyist) 1167 * Fix Content-Type header sent by the HTTP client #329 (@joerg) 1168 * Improve performance tracing while scanning refs #311 (@michael-k) 1169 * Fix detection of LocalGitDir and LocalWorkingDir #312 #354 #361 (@michael-k) 1170 * Fix inconsistent file mode bits for directories created by Git LFS #364 (@michael-k) 1171 * Optimize shell execs #377, #382, #391 (@bozaro) 1172 * Collect HTTP transfer stats #366, #400 (@rubyist) 1173 * Support GIT_DIR and GIT_WORK_TREE #370 (@michael-k) 1174 * Hide Git application window in Windows #381 (@bozaro) 1175 * Add support for configured URLs containing credentials per RFC1738 #408 (@ewbankkit, @technoweenie) 1176 * Add experimental support for batch API calls #285 (@rubyist) 1177 * Improve linux build instructions for CentOS and Debian. #299 #309 #313 #332 (@jsh, @ssgelm, @andyneff) 1178 1179 ## v0.5.1 (30 April, 2015) 1180 1181 * Fix Windows install.bat script. #223 (@PeterDaveHello) 1182 * Fix bug where `git lfs clean` will clean Git LFS pointers too #271 (@technoweenie) 1183 * Better timeouts for the HTTP client #215 (@Mistobaan) 1184 * Concurrent uploads through `git lfs push` #258 (@rubyist) 1185 * Fix `git lfs smudge` behavior with zero-length file in `.git/lfs/objects` #267 (@technoweenie) 1186 * Separate out pre-push hook behavior from `git lfs push` #263 (@technoweenie) 1187 * Add diff/merge properties to .gitattributes #265 (@technoweenie) 1188 * Respect `GIT_TERMINAL_PROMPT ` #257 (@technoweenie) 1189 * Fix CLI progress bar output #185 (@technoweenie) 1190 * Fail fast in `clean` and `smudge` commands when run without STDIN #264 (@technoweenie) 1191 * Fix shell quoting in pre-push hook. #235 (@mhagger) 1192 * Fix progress bar output during file uploads. #185 (@technoweenie) 1193 * Change `remote.{name}.lfs_url` to `remote.{name}.lfsurl` #237 (@technoweenie) 1194 * Swap `git config` order. #245 (@technoweenie) 1195 * New `git lfs pointer` command for generating and comparing pointers #246 (@technoweenie) 1196 * Follow optional "href" property from git-lfs-authenticate SSH command #247 (@technoweenie) 1197 * `.git/lfs/objects` spec clarifications: #212 (@rtyley), #244 (@technoweenie) 1198 * man page updates: #228 (@mhagger) 1199 * pointer spec clarifications: #246 (@technoweenie) 1200 * Code comments for the untrack command: #225 (@thekafkaf) 1201 1202 ## v0.5.0 (10 April, 2015) 1203 1204 * Initial public release