Skip to content

Releases: go-git/go-git

v4.5.0

09 Mar 21:28
3bd5e82
Compare
Choose a tag to compare

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

09 Mar 21:28
b235700
Compare
Choose a tag to compare

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

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)