Change how getReferenceCommit() retrieves commits#1420
Open
rcjsuen wants to merge 1 commit intonodegit:masterfrom
Open
Change how getReferenceCommit() retrieves commits#1420rcjsuen wants to merge 1 commit intonodegit:masterfrom
rcjsuen wants to merge 1 commit intonodegit:masterfrom
Conversation
ff4062c to
9ff5708
Compare
If a tag is annotated, its target() will return a tag object instead of the tag's underlying commit. This causes Repository's getReferenceCommit() to not work as it will try to find a commit based on the tag's oid. By replacing target() with peel(), the code can now find the actual underlying commit regardless of whether a tag is annotated or not. Signed-off-by: Remy Suen <[email protected]>
9ff5708 to
749844b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The current code in repository.js assumes that the return value from
reference.target()is an oid that points to a commit.nodegit/lib/repository.js
Lines 1057 to 1069 in b6e1478
However, this is not true for annotated commits as its target oid is actually the tag object itself. To get around this,
reference.peel(NodeGit.Object.TYPE.COMMIT)should be used instead so that the reference object will fully unwrap itself to the underlying commit object. This should fix #1370.