Open
Conversation
Upstream commit 2adb7bc. Negative refspecs were added in Git v2.29.0 which allows refspecs to be prefixed with `^`[^1]. Currently, the library is unable to normalize negative refspecs which causes errors in different tools that rely on `libgit2`. Specifically, when the library attempts to parse and normalize a negative refspec, it returns a `GIT_EINVALIDSPEC` code. Add the ability to correctly normalize negative refspecs. While this PR will not update the behavior of `fetch`, or other actions that rely on negative refspecs, this allows us to be able to successfully parse and normalize them. A future change will handle updating the individual actions. [^1]: git/git@c0192df
Upstream commit 3d9f406. Negative refspecs were added in Git v2.29.0 and are denoted by prefixing a refspec with a caret. This adds a way to distinguish if a refspec is negative and match negative refspecs.
Upstream commit f7f30ec. Add support for fetching with negative refspecs. Fetching from the remote with a negative refspec will now validate any references fetched do not match _any_ negative refspecs and at least one non-negative refspec. As we must ensure that fetched references do not match any of the negative refspecs provided, we cannot short-circuit when checking for matching refspecs.
5bdb78f to
20f77fb
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.
a7b1d11abrefs: Handle normalizing negative refspecsUpstream commit 2adb7bc.
Negative refspecs were added in Git v2.29.0 which allows refspecs to be
prefixed with
^1. Currently, the library is unable to normalizenegative refspecs which causes errors in different tools that rely on
libgit2. Specifically, when the library attempts to parse andnormalize a negative refspec, it returns a
GIT_EINVALIDSPECcode.Add the ability to correctly normalize negative refspecs. While this PR
will not update the behavior of
fetch, or other actions that rely onnegative refspecs, this allows us to be able to successfully parse and
normalize them. A future change will handle updating the individual
actions.
383be7b53refspec: Add func to distinguish negative refspecsUpstream commit 3d9f406.
Negative refspecs were added in Git v2.29.0 and are denoted by prefixing
a refspec with a caret. This adds a way to distinguish if a refspec is
negative and match negative refspecs.
20f77fb55remote: Handle fetching negative refspecsUpstream commit f7f30ec.
Add support for fetching with negative refspecs. Fetching from the
remote with a negative refspec will now validate any references fetched
do not match any negative refspecs and at least one non-negative
refspec. As we must ensure that fetched references do not match any of
the negative refspecs provided, we cannot short-circuit when checking
for matching refspecs.
Closes romkatv/gitstatus#438
Footnotes
https://github.com/git/git/commit/c0192df6306d4d9ad77f6015a053925b13155834 ↩