Releases: go-git/go-git
Releases · go-git/go-git
v4.0.0-rc13
Implemented enhancements:
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
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
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:
v4.0.0-rc10
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
Documentation updates and some minor fixes
v4.0.0-rc8
- 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
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
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
v4.0.0-rc5
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:
Storage:
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: