|
1 | 1 | # Change Log
|
2 | 2 |
|
| 3 | +## [0.13.0](https://github.com/nodegit/nodegit/releases/tag/v0.13.0) (2016-05-04) |
| 4 | + |
| 5 | +[Full Changelog](https://github.com/nodegit/nodegit/compare/v0.12.2...v0.13.0) |
| 6 | + |
| 7 | +# Summary |
| 8 | + |
| 9 | +This is a big update! Lots of work was done to bring NodeGit up to the latest stable libgit2 version (v0.24.1), to use babel in the library, to make it more stable, remove memory leaks, squash bugs and in general just improve the library for all. Make sure to see all of the API changes below (there are a lot). |
| 10 | + |
| 11 | +# Node support |
| 12 | + |
| 13 | +We have added Node 6 as a supported platform! Going forward we aim to have 1:1 support for versions of Node that are either current or LTS. That means that v0.12 will not be supported soon so if you're on that please upgrade to at least Node v4. Also Node v5 will *NOT* be LTS so when Node stops supporting that in the coming months we will as well. You can read more about the current Node upgrade plan [here](https://nodejs.org/en/blog/release/v6.0.0/). |
| 14 | + |
| 15 | +# API Changes |
| 16 | +------- |
| 17 | + |
| 18 | +## Modified |
| 19 | + |
| 20 | +- `Index#add`, `Index#addByPath`, `Index#clear`, `Index#conflictAdd`, `Index#conflictCleanup`, `Index#conflictGet`, `Index#conflictRemove`, `Index.open`, `Index#read`, `Index#readTree`, `Index#remove`, `Index#removeByPath`, `Index#removeDirectory`, `Index#read`, `Index#writeTree`, and `Index#writeTreeTo` are all now asynchronous functions [PR #971](https://github.com/nodegit/nodegit/pull/971) |
| 21 | +- Made `ancestoryEntry`, `outEntry` and `theirEntry` optional parameters on `Index#conflictAdd` [PR #997](https://github.com/nodegit/nodegit/pull/997) |
| 22 | +- `Repository#refreshIndex` will return an Index object back that has the latest data loaded off of disk [PR #986](https://github.com/nodegit/nodegit/pull/986) |
| 23 | +- `Commit.create` is now asynchronous [PR #1022](https://github.com/nodegit/nodegit/pull/1022) |
| 24 | + |
| 25 | +## Added |
| 26 | + |
| 27 | +- `Diff#merge` will combine a diff into itself [PR #1000](https://github.com/nodegit/nodegit/pull/1000) |
| 28 | +- `ReflogEntry#committer`, `ReflogEntry#idNew`, `ReflogEntry#idOld`, and `ReflogEntry#message` have been added |
| 29 | +[PR #1013](https://github.com/nodegit/nodegit/pull/1013) |
| 30 | + |
| 31 | +## Removed |
| 32 | + |
| 33 | +- `Repository#openIndex` [PR #990](https://github.com/nodegit/nodegit/pull/990) |
| 34 | +- `Reflog#entryCommitter`, `Reflog#entryIdNew`, `Reflog#entryIdOld`, and `Reflog#entryMessage` have been moved to be under `ReflogEntry` |
| 35 | +[PR #1013](https://github.com/nodegit/nodegit/pull/1013) |
| 36 | + |
| 37 | +## Bug fixes |
| 38 | + |
| 39 | +- `Branch.name` works now [PR #991](https://github.com/nodegit/nodegit/pull/991) |
| 40 | +- Fixed a crash with callbacks from libgit2 [PR #944](https://github.com/nodegit/nodegit/pull/944) |
| 41 | +- Fixed a crash in `Tree#entryByName` [PR #998](https://github.com/nodegit/nodegit/pull/998) |
| 42 | +- More memory leaks have been plugged [PR #1005](https://github.com/nodegit/nodegit/pull/1005), [PR #1006](https://github.com/nodegit/nodegit/pull/1006), [PR #1014](https://github.com/nodegit/nodegit/pull/1014), and [PR #1015](https://github.com/nodegit/nodegit/pull/1015) |
| 43 | +- `Commit#getDiffWithOptions` now actually passes the options correctly [PR #1008](https://github.com/nodegit/nodegit/pull/1008) |
| 44 | + |
| 45 | +## Upgraded to libgit2 v0.24.1 [PR #1010](https://github.com/nodegit/nodegit/pull/1010) |
| 46 | +------- |
| 47 | + |
| 48 | +### Changes or improvements |
| 49 | + |
| 50 | +- Custom merge drivers can now be registered, which allows callers to |
| 51 | + configure callbacks to honor `merge=driver` configuration in |
| 52 | + `.gitattributes`. |
| 53 | + |
| 54 | +- Custom filters can now be registered with wildcard attributes, for |
| 55 | + example `filter=*`. Consumers should examine the attributes parameter |
| 56 | + of the `check` function for details. |
| 57 | + |
| 58 | +- Symlinks are now followed when locking a file, which can be |
| 59 | + necessary when multiple worktrees share a base repository. |
| 60 | + |
| 61 | +- You can now set your own user-agent to be sent for HTTP requests by |
| 62 | + using the `Libgit2.OPT.SET_USER_AGENT` with `Libgit2.opts()`. |
| 63 | + |
| 64 | +- You can set custom HTTP header fields to be sent along with requests |
| 65 | + by passing them in the fetch and push options. |
| 66 | + |
| 67 | +- Tree objects are now assumed to be sorted. If a tree is not |
| 68 | + correctly formed, it will give bad results. This is the git approach |
| 69 | + and cuts a significant amount of time when reading the trees. |
| 70 | + |
| 71 | +- Filter registration is now protected against concurrent |
| 72 | + registration. |
| 73 | + |
| 74 | +- Filenames which are not valid on Windows in an index no longer cause |
| 75 | + to fail to parse it on that OS. |
| 76 | + |
| 77 | +- Rebases can now be performed purely in-memory, without touching the |
| 78 | + repository's workdir. |
| 79 | + |
| 80 | +- When adding objects to the index, or when creating new tree or commit |
| 81 | + objects, the inputs are validated to ensure that the dependent objects |
| 82 | + exist and are of the correct type. This object validation can be |
| 83 | + disabled with the `Libgit2.OPT.ENABLE_STRICT_OBJECT_CREATION` option. |
| 84 | + |
| 85 | +- The WinHTTP transport's handling of bad credentials now behaves like |
| 86 | + the others, asking for credentials again. |
| 87 | + |
| 88 | +### API additions |
| 89 | + |
| 90 | +- `Blob.createFromStream()` and |
| 91 | + `Blob.createFromStreamCommit` allow you to create a blob by |
| 92 | + writing into a stream. Useful when you do not know the final size or |
| 93 | + want to copy the contents from another stream. |
| 94 | + |
| 95 | +- `Config#lock` has been added, which allow for |
| 96 | + transactional/atomic complex updates to the configuration, removing |
| 97 | + the opportunity for concurrent operations and not committing any |
| 98 | + changes until the unlock. |
| 99 | + |
| 100 | +- `DiffOptions` added a new callback `progress_cb` to report on the |
| 101 | + progress of the diff as files are being compared. The documentation of |
| 102 | + the existing callback `notify_cb` was updated to reflect that it only |
| 103 | + gets called when new deltas are added to the diff. |
| 104 | + |
| 105 | +- `FetchOptions` and `PushOptions` have gained a `custom_headers` |
| 106 | + field to set the extra HTTP header fields to send. |
| 107 | + |
| 108 | +- `Commit#headerField` allows you to look up a specific header |
| 109 | + field in a commit. |
| 110 | + |
| 111 | +### Breaking API changes |
| 112 | + |
| 113 | +- `MergeOptions` now provides a `defaultDriver` that can be used |
| 114 | + to provide the name of a merge driver to be used to handle files changed |
| 115 | + during a merge. |
| 116 | + |
| 117 | +- The `Merge.TREE_FLAG` is now `Merge.FLAG`. Subsequently, |
| 118 | + `treeFlags` field of the `MergeOptions` structure is now named `flags`. |
| 119 | + |
| 120 | +- The `Merge.FILE_FLAGS` enum is now `Merge.FILE_FLAG` for |
| 121 | + consistency with other enum type names. |
| 122 | + |
| 123 | +- `Cert` descendent types now have a proper `parent` member |
| 124 | + |
| 125 | +- It is the responsibility of the refdb backend to decide what to do |
| 126 | + with the reflog on ref deletion. The file-based backend must delete |
| 127 | + it, a database-backed one may wish to archive it. |
| 128 | + |
| 129 | +- `Index#add` and `Index#conflictAdd` will now use the case |
| 130 | + as provided by the caller on case insensitive systems. Previous |
| 131 | + versions would keep the case as it existed in the index. This does |
| 132 | + not affect the higher-level `Index#addByPath` or |
| 133 | + `Index#addFromBuffer` functions. |
| 134 | + |
| 135 | +- The `Config.LEVEL` enum has gained a higher-priority value |
| 136 | + `PROGRAMDATA` which represent a rough Windows equivalent |
| 137 | + to the system level configuration. |
| 138 | + |
| 139 | +- `RebaseOptions` now has a `mergeOptions` field. |
| 140 | + |
| 141 | +- The index no longer performs locking itself. This is not something |
| 142 | + users of the library should have been relying on as it's not part of |
| 143 | + the concurrency guarantees. |
| 144 | + |
| 145 | +- `Remote#connect()` now takes a `customHeaders` argument to set |
| 146 | + the extra HTTP header fields to send. |
| 147 | + |
| 148 | +- `Tree.entryFilemode`, `Tree.entryFilemodeRaw`, `Tree.entryId`, `Tree.entryName`, |
| 149 | + `Tree.entryToObject`, and `Tree.entryType` have all been moved to the `TreeEntry` prototype. |
| 150 | + Additionally, the `TreeEntry` fields have been removed in lieu of the corresponding functions to return |
| 151 | + the data. |
| 152 | + |
3 | 153 | ## [0.12.2](https://github.com/nodegit/nodegit/releases/tag/v0.12.2) (2016-04-07)
|
4 | 154 |
|
5 | 155 | [Full Changelog](https://github.com/nodegit/nodegit/compare/v0.12.1...v0.12.2)
|
|
0 commit comments