Skip to content

Releases: go-git/go-git

v4.4.0

09 Mar 21:27
57570e8
Compare
Choose a tag to compare

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

  • git: remote, Do not iterate all references on update. #833 (jfontan)
  • Worktree: Provide ability to add excludes to worktree #825 (maguro)
  • Fix for "Worktree Add function adds ".git" directory" #815 (kuba--)

v4.3.1

09 Mar 21:27
b30763c
Compare
Choose a tag to compare

Maintenance release including purely bug fixes.

Change Log

  • git: remote, Add shallow commits instead of substituting. Fixes #412 #810 (jfontan)
  • storage: dotgit, init fixtures in benchmark. Fixes #770 #808 (jfontan)
  • dotgit: ignore filenames that don't match a hash #807 (strib)
  • Resolve full commit sha #706 (antham)

v4.3.0

09 Mar 21:26
0db54e8
Compare
Choose a tag to compare

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:

  • config: adds branches to config for tracking branches against remotes… #803 (TheHipbot)
  • add PlainOpen variant to find .git in parent dirs #784 (mvdan)

v4.2.1

09 Mar 21:26
247cf69
Compare
Choose a tag to compare

Changes

Merged pull requests:

v4.2.0

09 Mar 21:26
1d28459
Compare
Choose a tag to compare

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

09 Mar 21:25
886dc83
Compare
Choose a tag to compare

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:

  • plumbing: packfile, Add a buffer to crc writer #724 (jfontan)
  • git: added Clone.NoCheckout option #721 (rykov)

v4.1.0

09 Mar 21:25
e9247ce
Compare
Choose a tag to compare

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:

  • config: set default pack window size in config #712 (jfontan)

Merged pull requests:

  • plumbing: cache, modify cache to delete more than one item to free space #720 (jfontan)
  • plumbing: packfile, clean reconstructed objects outside pack window #716 (jfontan)
  • examples: add branch add/remove example #714 (marwan-at-work)

v4.0.0

09 Mar 21:25
bf3b1f1
Compare
Choose a tag to compare

go-git logo
GoDoc Build Status Build status codecov.io Go Report Card

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

09 Mar 21:24
Compare
Choose a tag to compare

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

09 Mar 21:24
Compare
Choose a tag to compare

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 to ReferenceName.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)