Releases: go-git/go-git
v4.5.0
This release includes a variety of different changes, some performance improvements for packafile index decoding, but as well as some functions at storage were made public, plus some other fixes and improvements.
Change Log
- plumbing: add context to allow cancel on diff/patch computing #874 (smola)
- utils: diff, skip useless rune->string conversion #873 (smola)
- Remote.Fetch: error on missing remote reference #870 (mcuadros)
- packfile: optimise NewIndexFromIdxFile for a very common case #869 (dsymonds)
- storage/filesystem: avoid norwfs build flag #864 (smola)
- plumbing/transport: http, Adds token authentication support [Fixes #858] #859 (ebilling)
- storage: filesystem, make ObjectStorage constructor public #857 (erizocosmico)
v4.4.1
Here is a new version of go-git
including some memory optimizations by dsymonds and a couple of bug fixes, #480 and #793.
Change Log
- plumbing: packfile, Don't copy empty objects. Fixes #840 #856 (kuba--)
- plumbing: object, adds tree path cache to trees. Fixes #793 #855 (jfontan)
- dotgit: Move package outside internal. #854 (ajnavarro)
- config: modules, worktree: Submodule fixes for CVE-2018-11235 #848 (josephvusich)
- packfile: improve Index memory representation to be more compact #846 (dsymonds)
- idxfile: optimise allocations in readObjectNames #845 (dsymonds)
v4.4.0
New go-git
version including a new functionality to support excludes on the Worktree
and also a big improvement of performance for repositories with thousands of references.
Change Log
v4.3.1
Maintenance release including purely bug fixes.
Change Log
v4.3.0
A small feature release including the new PlainOpenWithOptions
function able to locate the .git
folder by @mvdan and a basic feature that was missing, the tracking branches on Clone
by @TheHipbot
Change Log
Implemented enhancements:
v4.2.1
Changes
Merged pull requests:
- Add commit hash to blame result #795 (shanedasilva)
- *: Use CheckClose with named returns and fix tests #794 (jfontan)
- Resolve HEAD if symRefs capability is not supported #792 (ajnavarro)
- *: skip time consuming tests #786 (mcuadros)
- Fix RefSpec.Src() #783 (maguro)
- Worktree.Checkout: handling of symlink on Windows #778 (fkollmann)
- plumbing: format: pktline, Accept oversized pkt-lines up to 65524 bytes #797 (jvusich)
v4.2.0
After a very busy week, at Git Merge 2018, here is a new release of go-git, doesn't include anything very relevant besides the new Worktree.[AddGlob|RemoveBlob]
methods and the new traversal order for Repository.Log
done by @ilius
Changes
Fixed bugs:
- Basic Auth: Encode special characters in password #723
- Plain clone throws error even when repo doesn't exist #755
Merged pull requests:
- repository.Log: add alternatives for commit traversal order #771 (ilius)
- storage/filesystem: optimize packfile iterator #769 (dennwc)
- Unused params, unused code, make Go tip's vet happy #766 (mvdan)
- plubming: transport, Escape the user and pswd for endpoint. Fixes #723 #762 (zkry)
- plumbing: ssh, return error when creating public keys from invalid PEM #759 (mdelillo)
- blame: Add blame line data #754 (shanedasilva)
- new methods Worktree.[AddGlob|RemoveBlob] and recursive Worktree.[Add|Remove] #739 (mcuadros)
v4.1.1
Maintenance release including purely bug fixes. The only API change is Clone.NoCheckout
option #721 beeing added.
Changes
Fixed bugs:
- transport: http, fix services redirecting only info/refs #751 (mcuadros)
- plumbing: diff, fix crash when a small ending equal-chunk #749 (irias)
- plumbing: format/packfile, fix panic retrieving object hash. #744 (jfontan)
- storage/filesystem/shallow: fix error checking #740 (ferhatelmas)
- plumbing: format/packfile, fix crash with cycle deltas #731 (jfontan)
Merged pull requests:
v4.1.0
Here is a new release of go-git, it's focused on a performance improvement at clone operation with medium to big repositories (bigger than 200mb).
The clone operation it's now 2x times faster and uses 3x-5x times less memory.
Changes
Fixed bugs:
Merged pull requests:
v4.0.0
go-git is a highly extensible git implementation library written in pure Go.
After almost 18 months of development, more than +700 commits, and 15 release candidates we are pleased to release the v4
covering almost all the commonly used git functionalities.
The project license has changed to Apache License Version 2.0 and Developer Certificate of Origin. Also now provide Contributing Guidelines in order to make easier contribute to the project.
Stable API
The API is considered stable in all the functions reachable from the main package. This means that the plumbing structs and functions from plumbing
package that are being used as arguments or returned by functions in the main package are stable too. Plumbing structures used under the hood may change in following releases but in ways that won't break compatibility.
Changes
Fixed bugs:
- panic in object.getFileStatsFromFilePatches() for commits updating submodules: both from and to are nil #654
- RemoveReference doesn't always work #648
- Checking out over https fails #623
- git commit -a should not refer to the storage but to the filesystem #571
- SIGSEGV in fillREFDeltaObjectContent #568
- Rare SIGSEGV in fillREFDeltaObjectContent #682
- repo.Reference(plumbing.ReferenceName("refs/remotes/origin/branch"), true) results in "reference not found" error #676
- Commit Modified Lines #622
- PlainClone not fully populating tree on Windows #389
Merged pull requests:
- License upgrade, plus code of conduct and contributing guidelines #680 (mcuadros)
- Worktree.Grep() support multiple patterns and pathspecs #695 (darkowlzz)
- Worktree, add Grep() method for git grep #686 (darkowlzz)
- Worktree, add Clean() method for git clean #675 (darkowlzz)
- storage: filesystem, add support for git alternates #663 (darkowlzz)
- storage: add new functions for garbage collection #669 (strib)
- fix Repository.ResolveRevision for branch and tag #660 (antham)
- *: update to go-billy.v4 and go-git-fixtures.v3 #655 (mcuadros)
- storage: dotgit, handle refs that exist in both packed-refs and a loose ref file #666 (strib)
- storage: dotgit, remove ref cache for packed refs #651 (erizocosmico)
- utils: merkletrie, filesystem fix symlinks to dir #640 (dimonomid)
- config: support a configurable, and turn-off-able, pack.window #587 (strib)
- Remote, fix a range loop can break in advance #641 (sunfishgao)
- Remote, support for non-force, fast-forward-only fetches #665 (strib)
- Remote, add the last 100 commits for each ref in haves list #610 (strib)
- Remote, add support for ls-remote #609 (darkowlzz)
- Remote, iterate over references only once #580 (erizocosmico)
- Worktree.Add, Support Add deleted files, fixes #571 #577 (grunenwflorian)
- plumbing: cache, enforce the use of cache in packfile decoder #698 (jfontan)
- plumbing: packp/capability, skip argument validations for unknown capabilities #626 (orirawlings)
- plumbing: packfile, fix DecodeObjectAt when Decoder has type #646 (mcuadros)
- plumbing: packfile, delete index maps from memory when no longer needed #632 (strib)
- plumbing: packfile, use buffer pool for diffs #631 (strib)
- plumbing: packfile, improve delta reutilization #697 (ajnavarro)
- plumbing: object, add Stats() to Commit #613 (darkowlzz)
- plumbing: object, add support for signed commits #616 (darkowlzz)
- plumbing: object/tag, add signature and verification support #658 (darkowlzz)
- plumbing: object, new Commit.Verify method #653 (darkowlzz)
- plumbing: object, do not eat error on tree decode #652 (ferhatelmas)
- plumbing: object: patch, fix stats for submodules (fixes #654) #677 (krylovsk)
- plumbing: transport, add port to SCP Endpoints #608 (balkian)
- plumbing: transport/http, Close http.Body reader when needed #657 (ajnavarro)
- plumbing: transport/ssh, check .ssh/config for host and port overrides; fixes #629 #687 (smithrobs)
- plumbing: transport, converts Endpoint interface into a struct #650 (mcuadros)
- plumbing: transport, made public all the fields and standardized AuthMethod #649 (mcuadros)
- plumbing: revlist, do not revisit ancestors as long as all branches are visited #588 (erizocosmico)
- plumbing: the commit walker can skip externally-seen commits #586 (strib)
- plumbing: packfile, improve performance of delta generation #582 (erizocosmico)
- plumbing: object, commit.Parent() method #534 (josharian)