Releases: go-git/go-git
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)
v4.0.0-rc15
Fixed bugs:
- Worktree.Clone can't checkout commit pointed to by tag, but Git works #574
- Worktree.Checkout:Force bug? #435
- Worktree Checkout and Reset call to fetch operations on submodules #415
Merged pull requests:
- packfile: improve performance a little by reducing gc pressure #578 (erizocosmico)
- Repository.Clone added Tags option, and set by default AllTags #576 (mcuadros)
- Add sideband support for push #573 (orirawlings)
- Worktree.Reset refactor and Soft, Merge, Hard and Mixed modes #572 (mcuadros)
- dotgit: avoid duplicated references returned by Refs #569 (erizocosmico)
v4.0.0-rc14
Implemented enhancements:
- Support cancellation of long-running repository operations (with context.Context) #483
Fixed bugs:
- Can't clone annotated tags with
ReferenceName
in Clone #557 - PlainClone w/ tag returning reference not found #529
- Character normalization bug #495
- plumbing.Reference.IsBranch is not working well on windows #462
- windows support #345
- packp: AdvRefs is not encoded correctly when missing Head pointer #152
- user.Current() causes error when cross compiled #537
- Unable to push when there are a lot of merged merge requests history in ref #530
- Panic when calling Patch.String #523
- CloneOptions should reuse Auth method when recursing submodules #521
Merged pull requests:
- remote: avoid expensive revlist operation when only deleting refs #567 (strib)
- plumbing: use sliding window in delta calculations, like git CL #565 (strib)
- plumbing: use
seen
map in tree walker #564 (strib) - dotgit: rewrite the way references are looked up #563 (erizocosmico)
- grammar correction #561 (zachgersh)
- repository: Resolve commit when cloning annotated tag, fixes #557 #558 (orirawlings)
- _examples: context #555 (mcuadros)
- plumbing: use LookPath instead of Stat to fix Windows executables #554 (strib)
- packp: fixed encoding when HEAD is not a valid ref #552 (mcarmonaa)
- examples: add example for pulling changes #546 (orirawlings)
- fix race condition on ObjectLRU #544 (erizocosmico)
- prevent PackWriter from using Notify if nothing was written #543 (erizocosmico)
- serialized remotes in alphabetical order #542 (mcarmonaa)
- *: windows support, skipped receive_pack_test for git transport #540 (mcarmonaa)
- Avoid using user.Current() #538 (kimh)
- *: windows support, some more fixes (2) #536 (mcarmonaa)
- *: windows support, some more fixes #533 (mcarmonaa)
- Remote.Clone fix clone of tags in shallow mode #532 (mcuadros)
- plumbing: moved
Reference.Is\*
methods toReferenceName.Is\*
#531 (mcuadros) - plumbing: fix pack commands for the file client on Windows #527 (strib)
- Normalize filenames before comparing. #526 (joshbetz)
- reuse Auth method when recursing submodules, fixes #521 #522 (devonbarrett)
- config: multiple values in RemoteConfig (URLs and Fetch) #501 (smola)