| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
PR #1123 bumped libgit2 which brought in many changes and bug fixes.
In this release we had added support for Node v7 and latest Electron. We have removed support for Node v0.12 and v5.
We are also deprecating nw.js support since it is currently broken, no one in the current team uses it and we would not be able to currently support nw.js in an effective manner with a good user experience.
For proxy support we now use libcurl for HTTP/HTTPS transport which should have no noticeable change in NodeGit remote operations but if changes are noticed this is worth mentioning as a potential source.
Many PR's were made to fix memory leaks as they were found so memory usage should go down in this version for long running scripts. Additionally, when performing operations with callbacks (transfer progress, credentials, etc...) there was a small chance for a segfault when NodeGit would schedule the callback to go into JavaScript. This is now fixed.
Many users, especially on windows, were experiencing errors during the build. The build still isn't perfect but a lot of the bugs were fixed.
The majority of changes to NodeGit v17 were in libgit2. The API breaking changes that are known are:
Summary of changes that were brought in:
This updates NodeGit to use the latest HEAD version of libgit2. The plan for staying on the official tagged releases of libgit2 is that they will get a maintenance branch and not-breaking API fixes will be backported to them. The first branch of this sort is maint/0.14. Going forward new releases of NodeGit will follow closely to the master branch of libgit2.
Summary of changes that were brought in:
NodeGit.FetchOptions, and NodeGit.PushOptions now have a proxyOpts field that accepts a NodeGit.ProxyOptions object that allows NodeGit to use a proxy for all remote communication
NodeGit.MergeOptions has a defaultDriver field that lets the caller change the driver used to when both sides of a merge have changed
Commit.createWithSignature allows the caller to create a signed commit. There are no tests for this currently so it's labelled experimental.
Blob, Commit, Tag, and Tree all have a new prototype dup method on them to make a low-level copy of the libgit2 object if needed.
Odb#expandIds is exposed which takes in a list of short ids and expands them in-place to the full id of the object in the database
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).
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.
Custom merge drivers can now be registered, which allows callers to configure callbacks to honor merge=driver configuration in .gitattributes.
Custom filters can now be registered with wildcard attributes, for example filter=*. Consumers should examine the attributes parameter of the check function for details.
Symlinks are now followed when locking a file, which can be necessary when multiple worktrees share a base repository.
You can now set your own user-agent to be sent for HTTP requests by using the Libgit2.OPT.SET_USER_AGENT with Libgit2.opts().
You can set custom HTTP header fields to be sent along with requests by passing them in the fetch and push options.
Tree objects are now assumed to be sorted. If a tree is not correctly formed, it will give bad results. This is the git approach and cuts a significant amount of time when reading the trees.
Filter registration is now protected against concurrent registration.
Filenames which are not valid on Windows in an index no longer cause to fail to parse it on that OS.
Rebases can now be performed purely in-memory, without touching the repository's workdir.
When adding objects to the index, or when creating new tree or commit objects, the inputs are validated to ensure that the dependent objects exist and are of the correct type. This object validation can be disabled with the Libgit2.OPT.ENABLE_STRICT_OBJECT_CREATION option.
The WinHTTP transport's handling of bad credentials now behaves like the others, asking for credentials again.
Blob.createFromStream() and Blob.createFromStreamCommit allow you to create a blob by writing into a stream. Useful when you do not know the final size or want to copy the contents from another stream.
Config#lock has been added, which allow for transactional/atomic complex updates to the configuration, removing the opportunity for concurrent operations and not committing any changes until the unlock.
DiffOptions added a new callback progress_cb to report on the progress of the diff as files are being compared. The documentation of the existing callback notify_cb was updated to reflect that it only gets called when new deltas are added to the diff.
FetchOptions and PushOptions have gained a customHeaders field to set the extra HTTP header fields to send.
Commit#headerField allows you to look up a specific header field in a commit.
MergeOptions now provides a defaultDriver that can be used to provide the name of a merge driver to be used to handle files changed during a merge.
The Merge.TREE_FLAG is now Merge.FLAG. Subsequently, treeFlags field of the MergeOptions structure is now named flags.
The Merge.FILE_FLAGS enum is now Merge.FILE_FLAG for consistency with other enum type names.
Cert descendent types now have a proper parent member
It is the responsibility of the refdb backend to decide what to do with the reflog on ref deletion. The file-based backend must delete it, a database-backed one may wish to archive it.
Index#add and Index#conflictAdd will now use the case as provided by the caller on case insensitive systems. Previous versions would keep the case as it existed in the index. This does not affect the higher-level Index#addByPath or Index#addFromBuffer functions.
The Config.LEVEL enum has gained a higher-priority value PROGRAMDATA which represent a rough Windows equivalent to the system level configuration.
RebaseOptions now has a mergeOptions field.
The index no longer performs locking itself. This is not something users of the library should have been relying on as it's not part of the concurrency guarantees.
Remote#connect() now takes a customHeaders argument to set the extra HTTP header fields to send.
Tree.entryFilemode, Tree.entryFilemodeRaw, Tree.entryId, Tree.entryName, Tree.entryToObject, and Tree.entryType have all been moved to the TreeEntry prototype. Additionally, the TreeEntry fields have been removed in lieu of the corresponding functions to return the data.
Closed issues:
Error: Module did not self-register #593
A guide on how to create a new branch, switch to it and delete it. #588
A way to get "gone" branches #583
Missing documentation pages for BranchIterator and NodeIterator #581
ELIFECYCLE error on npm rebuild #578
npm rebuild fails (lifecycleScripts/clean should not delete lifecycleScripts!) #576
Unable to compile and install v0.4.0 on Windows #575
Doesn't work with Electron #574
Doesn't work with io.js 2.x #573
Getting an exception during a fetchAll in defaultSignature in repository.js #572
tree_entry path function not working when calling getEntry with a path including subdir #570
Build is broken on windows #565
Cloning git sub modules using "nodegit" npm module #560
How to get remote latest commit? #559
npm install fails for nw.js #558
nodegit and nw.js #557
Merged pull requests:
Fix for issue #591. TreeEntry.path() throws when TreeEntry came from Tree.entries() #592 (tomruggs)
Add git\_index\_conflict\_get and test #586 (johnhaley81)
Bump nan #584 (johnhaley81)
Fix CI false positives #582 (johnhaley81)
Check for existence to avoid throwing an error when there is no default signature #577 (tomruggs)
Fix path function in tree_entry (fix for issue #570) #571 (jfremy)
Closed issues:
Error installing nodegit as dependency of an atom-shell app #556
New version of nan is breaking compile #554
Install error from openssl #551
How to get Tag instance by tag_name? #543
ELIFECYCLE Error on install #540
Remote.delete returns -3 #539
Repository.init should accept boolean value for is_bare #538
getStatus hangs #537
Unable to compile or install with npm install nodegit #536
options not reusable, nodegit destroys it #533
'Error: 'directory' exists and is not an empty directory' (but it doesn't exist) #530
hey !:-) problem with Branch.iteratorNew (support) #528
hey !:-) problem with Branch.iteratorNew #527
hey !:-) problem with Branch.iteratorNew #526
hey !:-) problem with Branch.iteratorNew #525
Error: Reference 'refs/remotes/user/foo/HEAD' not found #523
Path issues windows #522
Issues on scientific linux 6.6 #521
It's looking for node-typ under /Users/johnh/.node-gyp #518
Not working with iojs #516
Cred.sshKeyNew not working: Too many redirects or authentication replays #511
Open a Repo from a subfolder #509
Create git-like CLI #508
Cannot create an instance of Packbuilder #507
Cannot find module '../build/Debug/nodegit' #506
Bug with oid implicit cast inside C++ #501
Failed to require on Ubuntu 12.04LTS #493
Enable git\_config #449
Pull example doesn't fully update the index #389
Merged pull requests:
There is an incompatibility with NaN 1.8.x, keeping 1.7.x for now. #552 (wiggzz)
This fixes polling sync promises in callbacks. #546 (johnhaley81)
Add get/set config string methods and tests #545 (johnhaley81)
Make Remote.delete async and return error messages correctly #544 (johnhaley81)
Bump "nodegit-promise" version #542 (johnhaley81)
Introduced a new ConvenientLine class to wrap the lines returned from ConvenientHunk. #541 (bleathem)
Fix some things missed by the generating scripts #535 (johnhaley81)
Fix freeing a GitOid that was passed as a string #531 (johnhaley81)
Lots of complaints of missing build/Debug/nodegit #520 (tbranyen)
Add Graph.aheadBehind and tests #517 (johnhaley81)
Update to use libgit2 v0.22.2 #515 (johnhaley81)
Add Repository.prototype.fetchheadForeach and tests #514 (johnhaley81)
Fix atom-shell build on windows #512 (johnhaley81)
Update Checkout and Merge #505 (orderedlist)
Revert "Guide navigation is currently confusing" #503 (thgaskell)
Add twitter username to README.md #498 (johnhaley81)
Fix symbolic reference handling in getReferences #496 (billt2006)
Enable git\_stash\_foreach #495 (johnhaley81)
Add automatically generated change log file. #465 (skywinder)
Merged pull requests:
Closed issues:
Merged pull requests:
Merged pull requests:
Closed issues:
Push #463
Suppress astyle errors #459
io.js support #447
Meteor: icon fonts not working (Resource interpreted as Font but transferred with MIME type text/html) #443
AnnotatedCommit.x listing as Annotated.commitX #437
fetchAll() fails unless a default signature is available #431
Question: Is there a certificateCheck option available for pushing to a remote repository? #420
Repository.open returns empty object #412
Missing documentation for Tree.walk() #411
comparing from 0.1.4 to 0.2.0 #410
Potential example issue in add-and-commit.js L45-48 #409
failed to install on ubuntu 14.04 #408
Return promises instead of nesting them #407
segfault when cloning from private BitBucket repo #406
Subtrees + custom error handling #400
How to use nodegit in atom shell ..... #393
Cannot create a new branch #391
Remove fixappveyor from clone tests #385
Commit isn't working #381
Rename combyne folder to templates #378
Cloning SSH repos seem to fail #372
Commit.getDiff is backwards? #368
List all files in repo (git ls-tree) #365
Checking out a branch #361
nodegit no longer builds in nwjs #360
Module install/build fails on Heroku #332
2 Step Authentication #323
Merged pull requests:
Rename Annotated to AnnotatedCommit #485 (johnhaley81)
Bump version to 0.3.0 #484 (johnhaley81)
Remove unneeded connect call from push example #483 (johnhaley81)
Fix trailing space in atom-shell windows install #480 (johnhaley81)
Fix atom-shell install on windows #479 (johnhaley81)
Updated API documentation link to work with NPM's markdown renderer. #477 (hughfdjackson)
Add option to fetch to prune the remote afterwards #476 (johnhaley81)
Make index.addAll use status to increase performance #475 (maxkorp)
Add defaults to Remote.prototype.push #474 (johnhaley81)
Fix createCommitOnHead #473 (johnhaley81)
Move guides around to remove subindexes #472 (orderedlist)
Put Remote.Push on the remote prototype #470 (johnhaley81)
Change Repository.prototype.setHead to be asynchronous #469 (jrbalsano)
Add checkoutBranch convenience method #466 (johnhaley81)
Don't assign enums to __proto__ #464 (orderedlist)
Fix push example #462 (johnhaley81)
Adds support for strarray in structs #461 (orderedlist)
Remote push #457 (mattyclarkson)
Include missing lib files in nodegit.js template #455 (orderedlist)
StrArray memory fix #454 (mattyclarkson)
Add Diff.prototype.findSimilar #452 (orderedlist)
Str array converter fix #451 (mattyclarkson)
Default signature always returns valid signature #450 (johnhaley81)
Status.byIndex and StatusEntry #448 (orderedlist)
Upgrade to nan 1.7.0 #446 (orderedlist)
Add examples #442 (johnhaley81)
Fix transfer callback stats #440 (johnhaley81)
Skip transfer progress test until it's fixed #433 (johnhaley81)
Change environment to default for upgraded service #428 (maxkorp)
Make the git\_remote\_push function async #427 (johnhaley81)
Fix seg faults #424 (johnhaley81)
Clean up the persisting of props #423 (johnhaley81)
Fix indexEntry construction and blobFromBuffer #422 (orderedlist)
Allow for saving of props to an object #421 (johnhaley81)
Update jsdoc and ignore some methods #418 (orderedlist)
Fix callbacks with just return value and single payload #416 (johnhaley81)
Add git\_reset and git\_reset\_default #415 (johnhaley81)
Enable git\_index\_remove\_all and git\_index\_update\_all #414 (johnhaley81)
Added code for git\_strarray and enabled git\_index\_add\_all #413 (johnhaley81)
Tree Entry getBlob() should also support the callback pattern. #405 (jeffwilcox)
Updated most dependencies to latest versions #394 (johnhaley81)
Index diffing #392 (orderedlist)
Update to libgit2 v0.22.1 #390 (johnhaley81)
Status and StatusList #374 (orderedlist)
Allow null trees on Diff.treeToTree #370 (orderedlist)
Checkout.head initializes options if none are passed #367 (johnhaley81)
INCLUDE_UNTRACKED option not working for diffs #366 (kmctown)
Updated fs-extra to 0.15.0 #363 (johnhaley81)
Merged pull requests:
Closed issues:
Lookup a non existent commit crashes the process. #353
Why node-git uses 90% rotated hexagon? #344
Needed pull example or help with code #341
Can't require nodegit without building it explicitly #340
Tracking down bugs #331
Document possible values of CloneOptions #330
Require generating error #329
Failed getting Banner #328
Documentation broken #327
Fetch doesn't seem to work with https urls. #322
Merged pull requests:
Commit.getParents working with merge commits #357 (bjornarg)
Fixed a typo in the debug build instruction. #356 (mcollina)
[WIP] Attempt at fixing appveyor #352 (johnhaley81)
Updated to nan 1.5.0 and fixed build errors #351 (johnhaley81)
Added checkout head method and tests #347 (johnhaley81)
bump devDependencies #346 (PeterDaveHello)
Update dependency node-pre-gyp to ~0.6 #345 (PeterDaveHello)
Update dependency fs-extra to ~0.14.0 #343 (PeterDaveHello)
Add Dependency badge in readme #342 (PeterDaveHello)
Fixed promise chain on install #339 (johnhaley81)
Use svg instead of png to get better image quality #337 (PeterDaveHello)
Update to libgit 0.21.4 #336 (johnhaley81)
Fix issue 333 #334 (johnhaley81)
Closed issues:
Fetch does not really fetch #314
Generate Missing Tests - Unable #313
Unable to get reference for HEAD #311
nodegit.Signature.now broken #306
current branch #305
Module fails to load #299
How to list all tags? #298
Building for ARM #292
Next release checklist #256
Merged pull requests:
Fixed fetch to be async and use callbacks #319 (johnhaley81)
Make contributing.md generic and add testing.md #318 (maxkorp)
Fix 313 generate scripts #315 (xinUmbralis)
Fix #311 #312 (johnhaley81)
move nodegit.js to a template to remove idefs dependency #303 (maxkorp)
Fixed tag list and added a test for it #300 (johnhaley81)
Convenience methods #297 (johnhaley81)
Merged pull requests:
Merged pull requests:
Closed issues:
Find some way to automatically generate a list of missing tests. #272
libgit2 creation methods have name collisions with internal V8 functions #271
Enums are still being manually assigned in javascript #268
We're using too many promise libraries #264
unable to resolve symbolic references #262
nodegit installation falls back when Python install dir contains spaces #261
Probe features #245
require('path').Repo.open(...) returns {} #241
RevWalk malloc error #239
OS X tests in Travis-CI #237
Fix RevWalk tests #236
Simple clone fails. #231
Create templates for remaining src and include files #230
Error: SSL is not supported by this copy of libgit2. #228
error while install nodegit latest version 0.1.4 #225
error while install nodegit latest version 0.1.4 #224
Did getReferences dissapear? #223
Again for #147 #218
Update documentation on nodegit.org #217
Stable = bump to 1.0 #215
Example on nodegit.com homepage is invalid #211
tree.diffWorkDir deprecated? #209
Abort on getRemotes #201
Generic Logging/Tracing mechanism #199
Repo#openIndex missing #197
Documentation on http://www.nodegit.org/ out of date #196
Remove extern "C" with 0.21 bump #193
CloneOptions documentation lacking #192
Webpage examples are not up to date #190
Automatically generate structs from types array #187
Error: connect ETIMEDOUT during install #179
TODO #177
Notes #176
Integration improvements. #171
Merged pull requests:
[WIP] Push example #288 (johnhaley81)
Add details-for-tree-entry #285 (johnhaley81)
update add-and-commit example to include new paths #283 (maxkorp)
Added osx for testing on Travis #281 (johnhaley81)
Added " around python path to help fix issues with spaces in path #280 (johnhaley81)
Tests for branch class #279 (johnhaley81)
[WIP] Update examples #276 (johnhaley81)
Added script to generate missing tests #274 (johnhaley81)
MSBUILD doesn't allow an array of size 0 #270 (johnhaley81)
voidcheck string pointers and reenable attr test #266 (maxkorp)
require --documentation flag to include text in idefs #265 (maxkorp)
Added ability for callbacks to poll promises for fulfillment value #260 (johnhaley81)
Generate nodegit from libgit2 docs and refactor descriptor #259 (johnhaley81)
Use Start-Process to start pageant.exe #254 (FeodorFitsner)
Added more git_cred methods #251 (johnhaley81)
Add revwalk.hide and revwalk.simplifyFirstParent #235 (tbranyen)
Add revwalk.hide and revwalk.simplifyFirstParent #234 (orderedlist)
Moved wrapper/copy out of include/src #233 (johnhaley81)
Removed ejs dependency #232 (johnhaley81)
WIP: Refactor source generation templates from EJS to Combyne #227 (tbranyen)
Test fixes #226 (johnhaley81)
Added new methods in checkout and repository #207 (tbranyen)
moved libgit2 gyp to separate dir #184 (deepak1556)
Closed issues:
Redis Backend #173
using "Branch" object results in "undefined" error => branch.cc missing from binding.gyp? #166
Windows: Failure on install #158
Can't install v0.1.2 under OSX #155
Merged pull requests:
Fixed: "ReferenceError: error is not defined" #169 (danyshaanan)
Merged pull requests:
Closed issues:
gyp ERR cannot find -lgit2 #150
Read file from git server #145
"emulate git log" example error #144
repo.workdir() crashes (SIGSEGV) on a bare repo #128
How to create Branch using the API? #124
'npm run-script gen && npm install' on Ubuntu 13.04 #122
Error while installing Nodegit 0.1.0 #120
Question: How would I implement the equivalent of git status? #117
Sync versions of all the methods #115
Tick version # #107
Windows support #71
Create test for history with merge commits #64
Merged pull requests:
Fixed OSX Directions #143 (nickpoorman)
Closed issues:
Misleading Readme #138
Cannot find module './build/Debug/nodegit' #137
Support for Node 0.11+ #134
installer cant seem to find python #126
Cannot build when parent directory contains space(s) #123
question: how cvv8 is used? #118
question: gen.js does not generate wrapper.h and wrapper.cc #116
tree.diffIndex: pointer being freed was not allocated #112
Use as a dependency of another node project? #110
Segmentation faults with concurrent access? #104
tree.diffWorkDir #101
getReference passes unexpected object into callback #98
index.removeByPath stops execution #97
Missing example: commit to a local repo (i.e. git add, git commit) #96
Get contents of index entry? #94
Failure to Build nodegit at Commit 0aa9a3c120 on OS X 10.6.8 #92
TypeError: Cannot call method 'clone' of undefined #91
missing cstring #88
Installing fails - can't find vendor/libgit2/build #80
Improving JavaScript API #73
Using code-generation to generate #70
Merged pull requests:
Support for Node 0.11+ #135 (pierreinglebert)
Added git_diff_delta_dup to git_diff_get_patch to fix a memory issue whe... #113 (kmctown)
Try requiring build/Debug/nodegit if build/Release/nodegit wasn't found. #108 (papandreou)
Updated v0.18.0.json to make the index and DiffOptions arguments in Inde... #106 (kmctown)
Duplicate git_error struct before passing it on #105 (papandreou)
Changed v0.18.0.json so diffWorkDir DiffOptions argument is optional. Ad... #103 (kmctown)
new add-and-commit.js and remove-and-commit.js examples #99 (dcolens)
Add missing fields to index entry #95 (papandreou)
Made the tests pass and making each test self-contained #90 (FrozenCow)
Add system dependencies for OSX install #82 (philschatz)
Closed issues:
The api in README is incorrect #87
message_encoding in documentation for Repo.createCommit #86
How to retrieve blob with binary content? #83
Incorrect commit oid's when aggregated from commit.history() #81
How do you list branches in repo? #76
License? #74
Nested walks scatter memory and cause SEGFAULTS #72
feature request: Provide fileMode / getType method on tree entries #67
Document DiffList #66
Procedure for moving development to nodegit/nodegit #55
Cannot install on OSX #49
Merged pull requests:
Closed issues:
Merged pull requests:
Closed issues:
incomplete error reporting #57
Segmentation Fault in raw-commit.js #56
Another Mac OSX install fail #53
unit tests broken in travis-ci #52
"Image not found" with require("nodegit") on Mac OS X #51
Cannot Compile on 0.8.* #47
No suitable image found. #46
Fails to require module on latest node version #43
Compilation error node 0.6.1 #32
commit.history work like slice #17
Sync and Async methods #16
Comment all code methods #1
Closed issues:
pass through python flag to node-gyp #54
update package.json #28
Rewrite Notes #27
Tree each method is synchronous #15
Closed issues:
Unable to load shared library #39
Expand Convenience Unit Tests #38
repo has no method 'branch' #35
update for node 0.5.9 #29
Merged pull requests:
Closed issues:
Merged pull requests:
Closed issues:
repo.branch fails on empty repo #22
example/convenience-repo.js errors #21
Branch history each method is asynchronous #11
Closed issues:
* This Change Log was automatically generated by github_changelog_generator
| Back | FazBrowse Home | New Git URL |