Skip to content

Releases: go-git/go-git

v4.0.0-rc13

09 Mar 21:24
Compare
Choose a tag to compare
v4.0.0-rc13 Pre-release
Pre-release

Implemented enhancements:

  • Adding SSH ciphers when connecting #393
  • Walking through tree of non gitignored files #307

Fixed bugs:

  • No way to specify Auth for SubmoduleUpdateOptions #520
  • panic when using custom SSH client #519
  • Pack files >2GB create corrupted indexes #502
  • Different behavior on Fetch and Pull #470
  • git push new branch with depth=1 #455
  • Upon repo.Push standard git still sees commits as unpushed #443
  • Fetch remote tags to local #371
  • Very slow for large repos #505

Merged pull requests:

  • filesystem: reuse cache for packfile iterator #517 (smola)
  • revlist: ignore all objects reachable from ignored objects #516 (smola)
  • storage: reuse deltas from packfiles #515 (smola)
  • cache: reuse object cache for delta resolution, use LRU policy #514 (smola)
  • worktree: expose underlying filesystem #513 (mcuadros)
  • format: idxfile, support for >2Gb packfiles #512 (mcuadros)
  • remote: pull refactor to match default behavior of cgit #511 (mcuadros)
  • packfile: create packfile.Index and reuse it #510 (smola)
  • *: package context support in Repository, Remote and Submodule #509 (mcuadros)
  • transport: context package support allowing cancellation of any network operation #507 (mcuadros)
  • Add AuthMethod based on HTTP Authorization header #504 (strin)
  • move Repository.Pull to Worktree.Pull #499 (mcuadros)
  • remote: push, update remote refs on push #498 (mcuadros)
  • Implement a NoTags mode for fetch that mimics git fetch --no-tags #496 (lupine)
  • *: several windows support fixes #493 (mcuadros)
  • packfile: Avoid panics patching corrupted deltas. #492 (ajnavarro)
  • *: add more IO error checks #491 (smola)
  • repository: allow push from shallow repositories #489 (mcuadros)
  • worktree: checkout, create branch #487 (mcuadros)
  • Add example code for listing tags #484 (orirawlings)

v4.0.0-rc12

09 Mar 21:23
Compare
Choose a tag to compare
v4.0.0-rc12 Pre-release
Pre-release

Implemented enhancements:

  • transport: push with HTTPS : receive-pack not supported yet #406

Fixed bugs:

  • Push: RefSpec deleting reference does not work #466
  • data races in plumbing/transport/internal/common #463
  • Git status silently fails in a repository with no commits. #459
  • capabilities parsing fails when non-standard capability is found (was: Cloning from github broken?) #450
  • Chroot boundary crossed error when cloning symlinks pointing outside the repo #445
  • submodules path in gitdir is wrong (was: Submodules not having any objects) #413
  • References() returns forward slashes on Windows #372
  • Fetch remote tags to local #371
  • Race detected during PlainClone #351
  • Reference IsTag() is broken #461

Improvements

  • remote: fix Worktree.Status on empty repository #480 (mcuadros)
  • remote: avoid duplicate haves #479 (mcuadros)
  • worktree: test improvemnts on empty worktree #478 (mcuadros)
  • git: remove ErrObjectNotFound in favor of plumbing.ErrObjectNotFound #477 (taralx)
  • transport/server: add asClient parameter #476 (smola)
  • plumbing: protocol, fix handling multiple ACK on upload-pack and test… #475 (mcuadros)
  • Use buffered IO for decoding index files. #473 (taralx)
  • improve delete support on push #472 (smola)
  • plumbing: protocol, fix handling multiple ACK on upload-pack #469 (mcuadros)
  • remote: fix push delete, closes #466 #467 (smola)
  • fix reference shortening #465 (smola)
  • transport/file: avoid race with Command.Wait, fixes #463 #464 (smola)
  • fix race on packfile writer, fixes #351 #453 (smola)
  • storage/filesystem: Fix nil dereference in Shallow() #452 (taralx)
  • capability: accept unknown capabilities, fixes #450 #451 (smola)
  • transport: http push #432 (ajnavarro)
  • transport/ssh: allow passing SSH options #423 (smola)
  • Fixed modules directory path #414 (Cromel)
  • remote: fetch, correct behavior on tags #485 (mcuadros)

v4.0.0-rc11

09 Mar 21:23
Compare
Choose a tag to compare
v4.0.0-rc11 Pre-release
Pre-release

Highlights

  • worktree: adds .gitignore support (#429) (#444)
  • worktree: symlink support (#436)
  • *: upgrade to go-billy.v3

Bug fixes

  • client: ssh, fix push on git and ssh (#418)
  • revlist: ignore treeEntries that are submodules. (#440)
  • repository: update local remote references during fetch even if no pack needs to be received (#434)
  • worktree: Add create and push the blob objects to the storer (#441)
  • storage/filesystem: call initialization explicitly, fixes (#408) (#409)

Improvements:

  • internal/dotgit: rewrite code to avoid stackoverflow errors (#442)
  • client: ssh, support SSH Agent Auth on Windows (#405)
  • partial windows support (#369)
  • packfile: copy operation limited to 64kb (#411)
  • object: fix naming of NewCommit{Pre,Post}Iterator (#421)

v4.0.0-rc10

09 Mar 21:23
Compare
Choose a tag to compare
v4.0.0-rc10 Pre-release
Pre-release

Highlights

v4.0.0-rc10 introduces all major functionalities to be expected in v4.0.0:

  • Working tree manipulation: status, reset, checkout, add, remove, move and commit.
  • Diff for different objects and printing to unified diff format.
  • Better submodules support.
  • Improved git log API.

The release also contains major improvements in some performance areas, APIs to work with repositories over SSH and tons of bugfixes.

Notes

  • Go 1.8 is the minimum supported version for go-git.
  • API for the top-level package, plumbing/object and plumbing/transport are frozen with this release candidate. Backwards incompatible changes from this release until v4.0.0 should be minimal and affect only very low-level packages.
  • History has been filter-branched and does not match v4.0.0-rc9 and older.

Features

  • Submodules init and update (#270)
  • plumbing/storer: add RemoveReference (#269)
  • Add Repository.Log() method (fix #298) (#337)
  • worktree: status and reset implementation (#339)
  • worktree: reset and checkout support for submodules (#344)
  • worktree: add method (#361)
  • worktree: Commit method implementation (#375)
  • worktree: Remove and Move methods (#395)
  • format/diff: unified diff encoder and public API (#388)
  • transport: ssh, NewPublicKeys support for encrypted PEM files (#355)
  • support force push (refspec with +) (#366)

API

  • git: Repository methods changes (#296)
  • git: make Storer public in Repository (#263)
  • plumbing/storer: referenceIterator now returns the error if any (#286)
  • plumbing/object: move difftree to object package (#284)
  • plumbing/revlist: input as a slice of hashes instead of commits (#292)
  • issue #274: new filemode package (#297)
  • project: move imports from srcd.works to gopkg.in (#303)
  • plumbing/object: add WalkCommitHistoryPost func (#305)
  • Export raw config (#334)
  • transport: ssh, NewPublicKeys helper (#347)
  • transport: ssh, new DefaultAuthBuilder variable (#356)
  • transport: make Endpoint an interface, fixes #362 (#365)

Bug fixes

  • plumbing/transport: git, error on empty SSH_AUTH_SOCK (#282)
  • Fix missing objects if they where deltified using ref-delta (#258)
  • difftree should ignore changes in permissions between the old, deprecated, group writable and ordinary files (#285)
  • plumbing/cache: specify units in memory size (Fix #234) (#289)
  • Return values of Read not checked (fix #65) (#299)
  • Work around a Go bug when parsing timezones (#320)
  • object: fix Change.Files() method behavior (fix #317) (#324)
  • references.go: fix Parents from commit iterator (#319)
  • add support for .git as file, fixes #348 (#363)
  • do not convert local paths to URL, Windows-related (#368)
  • format/packfile: fix bug when the delta depth is equals to 50 (#374)

Documentation

  • README: add table with supported git features (#384)
  • add git checkout example + housekeeping (#331)
  • examples: commit example (#381)
  • Improved documentation (#259)
  • plumbing: improve documentation (Fix #242) (#288)
  • Remove TODOs from documentation (#294)
  • _examples: improve documentation (fix #238) (#293)
  • improve git package documentation (fix #231) (#295)
  • Updated README in-memory example. (#316)

Internals

  • format/packfile: improve binary delta algorithm (#400)
  • Lazily load object index (#333)
  • cshared: remove directory (Fix #236) (#277)
  • cache: move package to plumbing (#278)
  • travis update to 1.8 and makefile silence commands (#283)
  • Add fast_finish flag to travis configuration (#287)
  • difftree: simplify hash comparison with deprecated files modes (#300)
  • plumbing: Use ReadBytes() rather than ReadSlice() (#314)
  • fix go vet issues, add go vet to CI (#360)
  • add test for tags push, closes #354 (#367)
  • plumbing: index, Entries converted in a slice of pointers (#364)
  • transport/server: use Endpoint string representation as a map key (#394)
  • storage: filesystem, initialize the default folder scaffolding (#398)

v4.0.0-rc9

09 Mar 21:22
Compare
Choose a tag to compare
v4.0.0-rc9 Pre-release
Pre-release

Documentation updates and some minor fixes

v4.0.0-rc8

09 Mar 21:22
Compare
Choose a tag to compare
v4.0.0-rc8 Pre-release
Pre-release
  • transport/http: fix partial request with haves. Fix #216. (#221)
  • packfile: cache undeltified objects to improve decode performance (#218)
  • plumbing/object: adds Tree method to Tree (#224)
  • config: modules, marshal and unmarshal implementation 4e78181
  • new repository constructors and worktree 24c1878
  • object: modes in TreeEntry as os.FileMode, and not the git internal cf9efc6
  • storage: IndexStorer implementation de1c0bf
  • Repository.Progress moved as a field in *Options (#237) a48bc6e
  • new srcd.works/go-git.v4 import path

v4.0.0-rc7

09 Mar 21:22
Compare
Choose a tag to compare
v4.0.0-rc7 Pre-release
Pre-release

Public API

  • remote: add Push (#178)
  • server: add git server implementation (#190)
  • doc: clarify return values of Pull/Fetch. (#205)
  • remote: fix empty-git-upload-pack error in fetch, when the reference points
    to a non-commit object (#209)
  • repository: fix pull when fetch returns up-to-date (#207)
  • blame: make line and its members public so they can be actually used (#213)

Plumbing

  • plumbing: fix signature with > before < parsing (#204)

Formats

  • packfile/decoder: speed up packfile iterator when specific type (#200)
  • packfile/scanner: reset zlib reader instead of new one (#201)

Transport

  • transport: remove SetAuth, fixes #206 (#210)

Test

  • fixtures: new fixture with multiple root commits (#212)
  • fixtures: initialize fixtures into separated methods (#214)
  • test: restore default protocol. (#215)

Internals

  • fix typo in docs for plumbing/difftree/internal/merkletrie/iter.go (#192)

v4.0.0-rc6

09 Mar 21:21
Compare
Choose a tag to compare
v4.0.0-rc6 Pre-release
Pre-release
  • fix plumbing/difftree package name (#191)
  • utils/fs: extract billy (#173)

v4.0.0-rc5

09 Mar 21:21
Compare
Choose a tag to compare
v4.0.0-rc5 Pre-release
Pre-release

Public API:

  • remote: make Fetch atomic. (#185)
  • remote: sideband support (#164)
  • move plumbing from top level package to plumbing (#183)
  • repository: Ref -> Reference; Refs -> References. (#168)
  • file: return error on File.Contents() if reader fails (#150)
  • rev-list command implementation for objects (#135)
  • difftree: merkletrie internal package with iterator (#133)

Config:

  • bare flag (#177)
  • support delete refspecs (IsDelete). (#166)

Storage:

  • filesystem, clean close when the packfile is not used (#140)
  • shallow storage (#180)

Protocols:

  • packp: add report status message. (#162)
  • packp: add reference update request encoder. (#147)
  • packp: add upload pack response message (#161)
  • capabilities: implementation (#144, #151, #153, #170)
  • sideband: muxer and demuxer (#143)

Formats:

  • packfile: packfile write (#131)
  • packfile: delta calculation (#182, #186, #172, #159)
  • pktline: fix readPayloadLen err handling (#148)

Utils:

  • fs: memory fix read offset
  • fs: memory fix ReadDir, error getting filename

Transports:

  • http: Add configurable http client factory (fixes #120) (#121)
  • git: new git protocol (#175)
  • ssh: keeping the original path (#189)
  • local/ssh: add git-send-pack support (#163)
  • local: add local transport (#145)
  • create Client interface (#132)

v4.0.0-rc4

09 Mar 21:20
Compare
Choose a tag to compare
v4.0.0-rc4 Pre-release
Pre-release

Global:

  • storage interface refactor (#112)
  • new plumbing package (#118)

Fixes:

  • utils/fs: add ReadAt to memory file and tests. (#122)
  • format/packfile: Fix nil tx bug (#124)