Skip to content

Commit badaff7

Browse files
authored
Merge pull request git-lfs#4629 from bk2204/release-next
release: v3.0.0
2 parents a937df9 + f0c872a commit badaff7

File tree

5 files changed

+195
-5
lines changed

5 files changed

+195
-5
lines changed

CHANGELOG.md

Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,189 @@
11
# Git LFS Changelog
22

3+
## 3.0.0 (24 Sep 2021)
4+
5+
This release is a major new release and introduces several new features, such as
6+
a pure SSH-based protocol, packages for several new OS versions, support for
7+
ARM64 Windows, Git-compatible pattern matching, and locking multiple files on
8+
the command line, among other items.
9+
10+
When connecting over SSH, the first attempt will be made to use
11+
`git-lfs-transfer`, the pure SSH protocol, and if it fails, Git LFS will fall
12+
back to the hybrid protocol using `git-lfs-authenticate`. Note that no major
13+
forges are known to support the pure SSH protocol at this time.
14+
15+
Because it is a major release, we've made some backwards-incompatible changes.
16+
A (possibly incomplete) list of them is as follows:
17+
18+
* NTLM support has been completely removed, since nobody volunteered to fix
19+
issues in it. Users are advised to use Kerberos or Basic authentication
20+
instead.
21+
* When using an SSH URL (that is, the syntax starting with `ssh://`), the
22+
leading slash is not stripped off when invoking `git-lfs-authenticate` or
23+
`git-lfs-transfer`. This is compatible with the behavior of Git when invoking
24+
commands over SSH.
25+
* `git lfs fsck` now additionally checks that pointers are canonical and that
26+
files that are supposed to be LFS files actually are. It also exits nonzero
27+
if any problem is found.
28+
* Pattern matching should be stricter and should either match the behavior of
29+
`.gitattributes` or `.gitignore`, as appropriate. Deviations from Git's
30+
behavior will henceforth be treated as bugs and fixed accordingly.
31+
* Git LFS will now write a Git LFS repository format version into the
32+
repository. This is designed to allow future extension with incompatible
33+
changes. Repositories without this version will be assumed to be version 0.
34+
Note that this is different from, but modeled on, Git's repository format
35+
version.
36+
* `git lfs lock` and `git lfs unlock` now handle multiple pathname arguments and
37+
the JSON format has changed to handle multiple responses.
38+
* The Go package name now contains a version number. This should have no effect
39+
on users because we don't provide a stable Go ABI.
40+
* Empty components in `PATH` are no longer treated as the current directory on
41+
Windows because unintentionally having such empty components is common and the
42+
behavior was surprising.
43+
44+
We would like to extend a special thanks to the following open-source
45+
contributors:
46+
47+
* @codykrieger for ensuring that we process includes correctly
48+
* @corngood for fixing a hang in prune
49+
* @dennisameling for adding support for Windows on ARM64
50+
* @fh1ch for fixing our 429 handling
51+
* @geki-yaba for fixing problems with askpass on Cygwin
52+
* @gison93 for fixing a bug in our documentation
53+
* @jvimr for ensuring our Debian packages are built properly
54+
* @opohorel for ensuring our copyright notices were up to date
55+
* @rhansen for fixing systems where / is a repository
56+
* @sergiou87 for improving support for cross builds
57+
* @slonopotamus for improving our error handling
58+
* @stanhu for improving our handling of invalid OIDs
59+
* @Timmmm for improving our support of .lfsconfig
60+
* @tklauser for avoiding the need for cgo on macOS
61+
62+
### Features
63+
64+
* Advertise hash algorithm supported in batch request #4624 (@bk2204)
65+
* Bump package version to v3 #4611 (@bk2204)
66+
* Update OS versions #4610 (@bk2204)
67+
* Add support for Debian 11 #4592 (@bk2204)
68+
* Support for locking and unlocking multiple files #4604 (@bk2204)
69+
* Add support for Windows ARM64 #4586 (@dennisameling)
70+
* LFS repository format version #4552 (@bk2204)
71+
* Pure SSH-based protocol #4446 (@bk2204)
72+
* Make fsck able to check for invalid pointers #4525 (@bk2204)
73+
* Add --fixup option to migrate info command #4501 (@chrisd8088)
74+
* Allow reporting of LFS pointers separately in migrate info command #4436 (@chrisd8088)
75+
* Add config variables for default remotes #4469 (@bk2204)
76+
* Make lfshttp package builds more portable #4476 (@bk2204)
77+
* Mark skipdownloaderrors as safe #4468 (@Timmmm)
78+
* Make migrate commands default to preserving uncommitted changes #4454 (@chrisd8088)
79+
* Darwin ARM64 support #4437 (@bk2204)
80+
* tools: implement cloneFileSyscall on darwin without cgo #4387 (@tklauser)
81+
* prune: add options to be more aggressive about pruning #4368 (@bk2204)
82+
83+
### Bugs
84+
85+
* corrected debian 11 & 12 derived variants #4622 (@jvimr)
86+
* urlconfig: anchor regexp for key matching #4598 (@bk2204)
87+
* filepathfilter: always use Git-compatible pattern matching #4556 (@bk2204)
88+
* debian and rpm: Pass `--skip-repo` to `install` and `uninstall` #4594 (@rhansen)
89+
* Fix hang in prune #4557 (@corngood)
90+
* Disable ANSI color codes while log parsing and anchor diff regular expressions #4585 (@chrisd8088)
91+
* Fix 429 retry-after handling for LFS batch API endpoint #4573 (@fh1ch)
92+
* go.mod: bump gitobj to v2.0.2 #4555 (@bk2204)
93+
* Fix locking with multiple paths and absolute paths #4535 (@bk2204)
94+
* locking: avoid nil pointer dereference with invalid response #4509 (@bk2204)
95+
* migrate import: make --above affect only individual files #4512 (@bk2204)
96+
* fs: be a little less aggressive with cleanup #4490 (@bk2204)
97+
* Fix downloadFile in gitfilter_smudge.go to actually propagate all errors #4478 (@slonopotamus)
98+
* Translate Cygwin path patches for askpass helper and cert dir/file #4473 (@geki-yaba)
99+
* Avoid panic on SIGINT by skipping cleanup when config uninitialized #4463 (@chrisd8088)
100+
* Parse stash log entries parsimonously in prune command #4449 (@chrisd8088)
101+
* docs: note that -I and -X override configuration settings #4442 (@bk2204)
102+
* Make all checks of blobSizeCutoff consistent #4435 (@chrisd8088)
103+
* Fix up handling of the "migrate info" command's --top option #4434 (@chrisd8088)
104+
* Tighten LFS pointer regexp #4421 (@stanhu)
105+
* invoke git-config with --includes to ensure it always evaluates `include.*` directives #4420 (@codykrieger)
106+
* Canonicalize Windows paths like Git does #4418 (@bk2204)
107+
* lfsapi: don't warn about duplicate but identical aliases #4413 (@bk2204)
108+
* lfs: don't invoke diff drivers when pruning repositories #4407 (@bk2204)
109+
* Consider scheme of request URL, not proxy URL, when choosing proxy #4396 (@bk2204)
110+
* Makefile: allow make release to be run twice in a row #4344 (@bk2204)
111+
* Makefile: don't fail the second time macOS builds are built #4341 (@bk2204)
112+
113+
### Misc
114+
115+
* subprocess: don't treat empty PATH component as . on Windows #4603 (@bk2204)
116+
* Switch from which to command -v #4591 (@bk2204)
117+
* Bump Go to 1.17 #4584 (@dennisameling)
118+
* Add cautions about unstable Go API and fix GPG key link #4582 (@chrisd8088)
119+
* Update go.mod module path with explicit v2 #4575 (@chrisd8088)
120+
* Drop unused ClearTempStorage() transfer adapter method and tune stale comments #4554 (@chrisd8088)
121+
* README: improve steps for building from source #4527 (@bk2204)
122+
* Update license year #4513 (@opohorel)
123+
* docs/man: add note re post-import use of checkout #4504 (@chrisd8088)
124+
* Bump transitive dependencies #4502 (@bk2204)
125+
* script/packagecloud: update distros #4494 (@bk2204)
126+
* Use host architecture and OS when running `go generate` #4492 (@sergiou87)
127+
* Bump go-spnego to the latest version #4482 (@bk2204)
128+
* Update git-lfs-migrate man page and add description section #4458 (@chrisd8088)
129+
* update x/text and dependencies #4455 (@opohorel)
130+
* Use blobSizeCutoff in clean pointer buffer length check #4433 (@chrisd8088)
131+
* tools: unset XDG_CONFIG_HOME for filetools test #4432 (@chrisd8088)
132+
* vendor,go.{mod,sum}: update x/net and dependencies #4398 (@chrisd8088)
133+
* Remove NTLM #4384 (@bk2204)
134+
* gitobj 2.0.1 #4348 (@bk2204)
135+
* Fix numbered list in git lfs examples #4347 (@gison93)
136+
* Add test for download gzip transport compression #4345 (@bk2204)
137+
138+
## 2.13.3 (26 Mar 2021)
139+
140+
This release fixes two bugs that caused `git lfs prune` to hang, updates some
141+
dependencies to versions which lack a security issue (which did not affect Git
142+
LFS), and adds support for ARM64 builds on macOS.
143+
144+
### Bugs
145+
146+
* lfs: don't invoke diff drivers when pruning repositories #4407 (@bk2204)
147+
* Parse stash log entries parsimonously in prune command #4449 (@chrisd8088)
148+
149+
### Misc
150+
151+
* Darwin ARM64 support #4437 (@bk2204)
152+
* vendor,go.{mod,sum}: update x/net and dependencies #4398 (@chrisd8088)
153+
154+
## 2.13.2 (13 Jan 2021)
155+
156+
This release introduces a security fix for Windows systems, which has been
157+
assigned CVE-2021-21237.
158+
159+
On Windows, if Git LFS operates on a malicious repository with a git.bat or
160+
git.exe file in the current directory, that program is executed, permitting the
161+
attacker to execute arbitrary code. This security problem does not affect Unix
162+
systems. This is the same issue as CVE-2020-27955, but the fix for that issue
163+
was incomplete and certain options can still cause the problem to occur.
164+
165+
This occurs because on Windows, Go includes (and prefers) the current directory
166+
when the name of a command run does not contain a directory separator. This has
167+
been solved by always using PATH to pre-resolve paths before handing them to Go.
168+
169+
We would like to extend a special thanks to the following open-source
170+
contributors:
171+
172+
* @Ry0taK for reporting this to us responsibly
173+
174+
### Bugs
175+
176+
* Use subprocess for invoking all commands (@bk2204)
177+
178+
## 2.13.1 (11 Dec 2020)
179+
180+
This release fixes a bug in our build tooling that prevents our release process
181+
from working properly. This release is otherwise identical to 2.13.0.
182+
183+
### Misc
184+
185+
* Makefile: don't fail the second time macOS builds are built #4341 (@bk2204)
186+
3187
## 2.13.0 (10 Dec 2020)
4188

5189
This release introduces several new features, such as the `--above` option to

config/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ var (
1313
)
1414

1515
const (
16-
Version = "2.13.0"
16+
Version = "3.0.0"
1717
)
1818

1919
func init() {

debian/changelog

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
git-lfs (3.0.0) stable; urgency=low
2+
3+
* New upstream version
4+
5+
-- brian m. carlson <[email protected]> Fri, 24 Sep 2021 14:29:00 -0000
6+
17
git-lfs (2.13.0) stable; urgency=low
28

39
* New upstream version

rpm/SPECS/git-lfs.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Name: git-lfs
2-
Version: 2.13.0
2+
Version: 3.0.0
33
Release: 1%{?dist}
44
Summary: Git extension for versioning large files
55

versioninfo.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"FixedFileInfo":
33
{
44
"FileVersion": {
5-
"Major": 2,
6-
"Minor": 13,
5+
"Major": 3,
6+
"Minor": 0,
77
"Patch": 0,
88
"Build": 0
99
}
@@ -13,7 +13,7 @@
1313
"FileDescription": "Git LFS",
1414
"LegalCopyright": "GitHub, Inc. and Git LFS contributors",
1515
"ProductName": "Git Large File Storage (LFS)",
16-
"ProductVersion": "2.13.0"
16+
"ProductVersion": "3.0.0"
1717
},
1818
"IconPath": "script/windows-installer/git-lfs-logo.ico"
1919
}

0 commit comments

Comments
 (0)